JavaSE:8、包装类
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);//10
int 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);//true
System.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);//666
System.out.println(b);//666
System.out.println(c); //8
System.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
}
}