1、基本类型包装类
包装类于将基本数据类型(如 int、float、char 等)转换为对应的对象类型
Java 提供了以下包装器类型,与基本数据类型一一对应:
- Byte(对应 byte)
- Short(对应 short)
- Integer(对应 int)
- Long(对应 long)
- Float(对应 float)
- Double(对应 double)
- Character(对应 char)
- Boolean(对应 boolean)
自动装箱与拆箱
import com.test.*;public class Main {public static void main(String [] argv){Integer integer=10; //自动装箱System.out.println(integer);//10int a=integer; //自动拆箱int b=integer.intValue();//与上面等价System.out.println(a+" "+b);//10 10}
}
缓存机制,会提前将部分数值小的对象生成,然后包装类对象都指向它,若超出范围则为新建的对象
import com.test.*;public class Main {public static void main(String [] argv){Integer a=10;Integer b=10; //自动装箱Integer c=222;Integer d=222;System.out.println(a==b);//trueSystem.out.println(c==d);//false}
}
包装类有一些方法 可以使其它对象转换成该类的对象
import com.test.*;public class Main {public static void main(String [] argv){String str="666";Integer a=Integer.valueOf(str);Integer b=Integer.parseInt(str);Integer c=Integer.decode("010");//将其它进制转为10进制System.out.println(a);//666System.out.println(b);//666System.out.println(c); //8System.out.println(Integer.toOctalString(c));//10//转换为8进制输出System.out.println(a==b);//false 对象判断System.out.println(a.equals(b)); //true 值判断}
}
2、特殊包装类
(1)BigInteger
不支持自动装箱拆箱,用于大整数计算
import com.test.*;import java.math.BigInteger;public class Main {public static void main(String [] argv){BigInteger bigInteger=BigInteger.valueOf(1000);// bigInteger=10; ERROR 不支持自动装箱拆箱bigInteger=bigInteger.multiply(BigInteger.TEN);System.out.println(bigInteger);}
}
(2)BigDecimal
计算高精度除法
import com.test.*;import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;public class Main {public static void main(String [] argv){BigDecimal bigDecimal=BigDecimal.valueOf(10);bigDecimal=bigDecimal.divide(BigDecimal.valueOf(3),10, RoundingMode.CEILING);System.out.println(bigDecimal);//3.3333333334}
}