Java 语法点

Java 记录 Java 与 C++/Go 的不同语法点

基本概念

  • JavaBean 就是可重用的 Java 类,要求符合下面要求:
    • 必须是 public 的
    • 有无参构造器
    • 通过 Set/Get 暴露成员属性

数据类型

修饰符

  • final
    • 修饰变量,表示常量,只能初始化时赋值
    • 修饰方法,表示不能被重写,与 abstract 正好相反
    • 修饰类,表示不能被继承,比如 String, Interger 以及其他包装类

容器文本初始化(initialize with literals)

1
2
3
4
5
import java.util.*;

public class A {
  private static final List<String> LIST = new ArrayList<String>(Arrays.asList("1", "2", "3"));
}

流程控制

for each

1
2
3
for (int item : items) {
  //...
}

import

  • 关于别名 Java 不支持在import时定义包或类的别名,如果有同名类需要同时使用,可以直接用包含全包名的类名。由于 Java 的包名就是域名的反向文本,所以不会出现全包名的冲突。

移位

  • >>> 无符号右移。由于 Java 中没有unsigned类型,所以在做移位操作时始终需要考虑符号位的处理。 当最左边是1(负数)时,进行>>>操作时,最左边的1不会变化(不影响符号位),符号位右边会自动补0

  • boolean ret = object instanceof class 判断某个对象是否属于某个类,或其子类,或者符合某个接口

  • obj1.getClass().equals(ClassA.class) 精确匹配类型