直接上代码:
package cn.tedu;
import java.math.BigDecimal;
/**本类用于复习包装类*/
public class ReviewInteger {
public static void main(String[] args) {
/**
* java中的数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,
* 而像String却可以,只因为String是一个对象而不是一个类型。
* 基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。
* 为了弥补这个缺陷,java提供了包装类。
* 所谓包装类,就是能够直接将简单类型的变量表示为一个类
*/
//本类用于测试包装类Integer
Integer i1 = new Integer(1);
Integer i2 = Integer.valueOf("9");
System.out.println(i1);
System.out.println(i2);
System.out.println(i1+i2);
/**
* Integer三种高效的效果:(3个条件)
* 1、是Integer类
* 2、使用valueOf()
* 3、包装类型的值在-128~127之间
* 满足以上条件,相同的值只会存储一次,后续再存都是使用之前的数据
*/
//自动装箱和自动拆箱
Integer i3 = 3;//底层实现Integer.valueOf(3);
int i4 = i3;//底层实现i3.intValue();
//BigDecimal用来解决浮点数运算不精确的问题
method();
}
private static void method() {
double a = 2.1;
double b= 1.2;
BigDecimal bd1 = new BigDecimal(a + "");
BigDecimal bd2 = new BigDecimal(b + "");
System.out.println(bd1.add(bd2));//加法
System.out.println(bd1.subtract(bd2));//减法
System.out.println(bd1.multiply(bd2));//乘法
System.out.println(bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP));//除法,重载了divide(x,y,z);
}
}