Java数据类型与运算符细节点

注释

默认

javadoc默认处理以public或protected修饰的类、接口、方法、成员变量、构造器、内部类之前的文档注释

包注释

包注释不是直接放在java源文件中,必须另外通过一个标准的HTML文件(包描述文件)指定

类型

强类型

所有变量必须先声明后使用,指定类型的变量只能接受类型与之匹配的值

转换

  • 强制类型转换,截取左边保留右边
  • 基本类型包装类都提供了parseXxx(String str)静态方法用于将字符串转换为基本类型 Boolean\Byte\Short\Integer\Long\Character\Float\Double
  • 表达式类型自动提升

最小单元

  • 1byte,2short,2char,4int,4float,8long,8double,boolean 1位即可归属计算机分配内存时最小单元8字节
  • (byte>short)/char>int>long>float>double

进制

  • 2进制0b,8进制0,十六进制0x(1015:af)
  • 最高位符号位
  • 计算机以补码的形式保存所有证书,补码=反码+1,符号位保持不变

无穷大

  • 正无穷大: Double或Float类的POSITIVE_INFINITY,正浮点数数除以0得到,表示正溢出
  • 负无穷大: Double或Float类的NEGATIVE_INFINITY,负浮点数数除以0得到,表示负溢出

运算处理

  • 移位运算时考虑有效位数,低于int类型先自动转换为int类型再移位
  • 左移n位就相当于乘以2的n次方,右移n位就相当于除以2的n次方
  • 移位运算不会改变操作数本身,只是得到了一个新的运算结果
  • !=如操作数都是引用类型,则两者之间具有父子关系才可以进行比较,指向的不是同一个对象就返回true
  • 短路逻辑运算&&||这两个当第一操作数位相应值时不对第二个操作数进行计算,非短路则都会执行计算
  • 单目运算符、复制运算符、三目运算符 从右向左结合运算,其余的从左向右
  • 分隔符>单目>强制类型转换>乘除余>加减>移位>关系>等价>按位与>按位异或>按位或>条件与>条件或>三目运算符>赋值

异常错误

  • 非数:Double或Float类的NaN,0.0除以0.0或对一个负数开方得到,表示出错
  • ArithmeticException:/by zero 一个整数值除以0,抛出如左异常
  • 整数类型进行求余运算,第二个不能是0 否则将引发零异常。如是浮点数则结果是非数

补充

  • java7中引入 数值中可以使用下划线进行分割
  • 当程序第一次使用某个字符串直接量时,java会使用常量池(constant pool)来缓存