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(10
15: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)来缓存