基本数据类型与包装类
- 基本数据类型
-
基本数据类型的 包装类 在堆上存储,需要使用 new 关键字创建:Boolean, Character, Byte, Short, Integer, Long, Float, Double, Void
- 由基本类型创建包装类
Integer v = new Integer(value);
更简单的Integer v = value;
(自动装/拆箱) - 对于值范围在-128~127 的 Integer 会共享对象,即多次使用 valueof 生成值相同的对象 会返回同一个对象,因此需要用
a.equals(b)
判断而不是=
-
包装类一旦创建值就不会变化(会直接创建一个新对象),这有一个重要用途就是可以像基础数据类型一样使用,而不需要担心副作用 (名义上是引用,但是在使用上类似值)
-
基本类型作为类成员时会被自动进行初始化(但是对于 不是类成员的局部变量的值可能是任意值)
- 使用未初始化的变量时 Java 总是会抛出错误
-
高精度数字
- 高精度整数
BigInteger
-
高精度浮点数
BigDecimal
-
类型转换
- byte short char 三种数据在运算的时候,都会提升为 int,然后再进行运算
- 强制转换与 c++相同
-
java 中宽化转型(如 int-> long)可以自动进行,但是窄化转型必须显式执行
-
java中除了基本数据类型保存真实数据,其它对象等类型均保存的是引用