iOS开发Java重学之旅一

2019-03-10  本文已影响0人  程序大猩猩

1. 基础数据类型

符号整型的取值范围是[-128,127]

因为:-1 + - 127 = 原码 1000 0001 + 1111 1111 = 反码 1111 1110 + 1000 0000 = 补码 1111 1111 + 1000 0001 = 补码 1000 0000

详见

2. 变量类型

局部变量是在栈上分配的。

局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

int age; //Error:(15, 15) java: 可能尚未初始化变量age

类变量:无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。静态变量除了被申明为常量外很少使用。

3. 修饰符

public protected default private

使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。

static 修饰符,用来修饰类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

private static final int numInstances = 0;
// Error:(10, 9) java: 无法为最终变量numInstances分配值

// Error:(5, 17) java: com.rambo.Boss中的superMethod()无法覆盖com.rambo.Employee中的superMethod() 被覆盖的方法为final

// Error:(3, 27) java: 无法从最终com.rambo.Employee进行继承

abstract 修饰符,用来创建抽象类和抽象方法。

// Error:(3, 8) java: com.rambo.SubCaravan不是抽象的, 并且未覆盖com.rambo.Caravan中的抽象方法changeColor()

synchronized 和 volatile 修饰符,主要用于线程的编程。

4. 装箱

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

Character

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。

      Integer x = 5;
      x =  x + 10;
      System.out.println(x); 
// 当 x 被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。

5. Math

Math.round() : 表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11.Math.round( )符合这样的规律:小数点后大于5全部加,等于5正数加,小于5全不加。

6. 循环、条件

int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
}

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

上一篇下一篇

猜你喜欢

热点阅读