8个基本数据类型不能参与面向对象的开发,因为其不是Object的子类,所以不能以多态的角度看待,必须用包装类
包装类都在java.lang包下
| 基本类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
- new Integer(1)
- Integer.valueOf(1) 推荐使用这种,Interger.valueOf()好处在于它会将字面量的值缓存,其缓存一个字节(-127,128)的值, 那么之后用同样的方法创建的Integer类就不会产生新的对象。节约内存
xxxValue() 例如:
Integer i = Integer.valueOf(1);
int i2 = i.intValue();- int i = Integer.valueOf(1); // 自动拆箱, 相当于int i = Integer.valueOf(1).intValue();
- Integer j = 1; // 自动装箱,相当于Integer j = Integer.valueOf(1);
- 常量
- MAX_VALUE:获取相对应的基本类型的最大值
- MIN_VALUE:获取相对应的基本类型的最小值
- 方法
- parseXXX(String str):可以将字符串转换为对应的基本数据类型
- 以下三个方法是Integer特有的
Integer还提供了三个方法,可以获取一个整数2、8、16进制的表现形式(String类型)
- Integer.toBinaryString(String str); // 转换为2机制
- Integer.toOctalString(String str); // 转换为8进制
- Integer.toHexString(String str); // 转换16进制
在java.math.BigInteger包下。可以保存的数字比long大的多。该类的+、-、*、/不能用基本的这种符号,而要用特有的方法 add(): + , subtract(): - , multiply(): * . divide(): /
在java.math.BigDecimal包下,可以做很精确的小数运算和保存精确的小数 方法
- add()
- subtract()
- multiply()
- divide(),通常不使用一个参数的方法,因为如果出现商为无限小数的情况,会一直除到内存溢出, 用三个参数的divide(divisor,scale,roundingMode) divisor:除数 scale: 精确到小数点后几位 roundingMode:舍入模式(四舍五入、、、、) 无论进行何种操作,最终结果都是BigDecimal类型