java
一元加号唯一的作用是将较小类型的操作数提升为int。
比较运算符不适用于boolean类型,因为boolean值只能为true或false, "大于"和"小于"没有实际意义。
java中增加了一种"无符号"右移位操作符(>>>),它使用"零扩展": 无论正负,都在高位插入0。这一操作符是C或C++中所没有的。
如果对char,byte或者short类型数值进行移位处理,那么在移位进行之前,它们会被转换成int类型,并且得到的结果也是 一个int类型的值。
如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。(byte->short->int->long->float->double; char->int)char型略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升至int型。
类既不可以是private的,也不可以是protected。所以对于类的访问权限,仅有两个选择:包访问权限或public。
根据惯例,既是static又是final的域(即编译期常量)将用大写表示,并使用下划线分隔各个单词
public final 域如果定义时没有初始化,才可以在构造方法中初始化,且在构造方法中也不能修改已初始化的值;
public static final 域必须在定义时初始化, 不能在构造方法中初始化;
1 public class Child extends Parent 2 { 3 //合法代码,属于重新定义属性,不是修改值 4 public final int age = 100; 5 } 6 class Parent 7 { 8 public final int age = 99; 9 }
1 public class Child extends Parent 2 { 3 public Child() 4 { 5 //非法代码, final域不可修改 6 this.age = 100; 7 } 8 } 9 class Parent 10 { 11 public final int age = 99; 12 }
1 public class Child extends Parent 2 { 3 //非法代码,不能覆盖父类final方法 4 public final void echo(){} 5 } 6 class Parent 7 { 8 public final void echo(){} 9 }
1 public class Child extends Parent 2 { 3 //合法代码, 属于重新定义方法 4 private final void echo(){} 5 } 6 class Parent 7 { 8 private final void echo(){} 9 }
1 public class Child extends Parent 2 { 3 //合法代码, 属于重新定义属性 4 private final int age = 100; 5 } 6 class Parent 7 { 8 private final int age = 99; 9 }
在final类中可以给方法添加final修饰词,但这不会增添任何意义
1 class A 2 { 3 //合法代码块 4 { 5 i = 100; 6 } 7 public int i = 99; 8 }