Skip to content

Latest commit

 

History

History
executable file
·
87 lines (55 loc) · 2.54 KB

File metadata and controls

executable file
·
87 lines (55 loc) · 2.54 KB

包装类

8个基本数据类型不能参与面向对象的开发,因为其不是Object的子类,所以不能以多态的角度看待,必须用包装类

1. 基本类型

包装类都在java.lang包下

1.1 基本类型对应的包装类

基本类型 包装类
byte Byte
short Short
int Integer
float Float
double Double
boolean Boolean
char Character

1.2 创建包装类实例

  • new Integer(1)
  • Integer.valueOf(1) 推荐使用这种,Interger.valueOf()好处在于它会将字面量的值缓存,其缓存一个字节(-127,128)的值, 那么之后用同样的方法创建的Integer类就不会产生新的对象。节约内存

1.3 包装类转换为基本类型

xxxValue() 例如:

Integer i = Integer.valueOf(1);
int i2 = i.intValue();

2. 包装类的自动拆装箱

  • int i = Integer.valueOf(1); // 自动拆箱, 相当于int i = Integer.valueOf(1).intValue();
  • Integer j = 1; // 自动装箱,相当于Integer j = Integer.valueOf(1);

3. 包装类支持的常量和方法

  • 常量
    1. MAX_VALUE:获取相对应的基本类型的最大值
    2. MIN_VALUE:获取相对应的基本类型的最小值
  • 方法
    1. parseXXX(String str):可以将字符串转换为对应的基本数据类型
    2. 以下三个方法是Integer特有的 Integer还提供了三个方法,可以获取一个整数2、8、16进制的表现形式(String类型)
      • Integer.toBinaryString(String str); // 转换为2机制
      • Integer.toOctalString(String str); // 转换为8进制
      • Integer.toHexString(String str); // 转换16进制

4. 大整形

在java.math.BigInteger包下。可以保存的数字比long大的多。该类的+、-、*、/不能用基本的这种符号,而要用特有的方法 add(): + , subtract(): - , multiply(): * . divide(): /

5. 小数运算

在java.math.BigDecimal包下,可以做很精确的小数运算和保存精确的小数 方法

  • add()
  • subtract()
  • multiply()
  • divide(),通常不使用一个参数的方法,因为如果出现商为无限小数的情况,会一直除到内存溢出, 用三个参数的divide(divisor,scale,roundingMode) divisor:除数 scale: 精确到小数点后几位 roundingMode:舍入模式(四舍五入、、、、) 无论进行何种操作,最终结果都是BigDecimal类型