Java 包装类

Java有“一切皆对象”的设计原则,Java中的基本数据类型就完全不符合这种设计思想,因为基本数据类型不是引用类型,

所在在JDK1.5之后,Java推出了基本数据类型对应的包装类。

 

八大包装类分为两种类型:

  Number:   Short  Integer    Long   Float   Double  都是Number的子类,表示一个数字

  Object   :Character   Bool  都是object的直接子类

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

装箱与拆箱:

  将基本数据类型装换成包装类,这类操作叫做装箱操作; 将包装类转换成基本数据类型,这类操作叫做拆箱操作

方法  描述
byteVlaue() Byte->byte
shortValue() Short->short
intValue() Integer->int
longValue() Long->long
floatValue() Float->float
doubleValue() Double->double
public class TestBaoZhuang {
    
    public static void main(String[] args) {
        
        //两种定义包装对象的方式
        Integer n1 = new Integer(12);
        Integer n2 = Integer.valueOf(13);
        
        //包装类转化成基本数据类型(拆箱)
        int n3 = n1.intValue();
        
        //也可以直接创建一个包装类对象
        Integer n4 = 15;
        
        //字符串转换成包装类(两种方式)
        Integer n5 = new Integer("123");
        
        String str = "125";
        Integer n6 = Integer.parseInt(str);
        
        /*
         * 面试题
         * 
         */
        Integer n7 = new Integer(16);
        Integer n8 = new Integer(16);
        System.out.println(n7==n8);          //false,比较的是两个对象的引用
        System.out.println(n7.equals(n8));   //true ,Integer重写了equals()方法,比较值大小
        
        Integer n9 = 17;
        Integer n10 = 17;
        System.out.println(n9==n10);          //true 
        System.out.println(n9.equals(n10));   //true 
        
        Integer n11 = 128;
        Integer n12 = 128;
        System.out.println(n11==n12);          //false,JVM中存在享元模式,Integer n11 = x,当x不超过一个字节(-127-128)可以表示的值时,后面创建同样值的包装类指向同一个对象。
                            //否则,就如 n11与n12指向不同对象
System.out.println(n11.equals(n12)); //true ,比较值大小 } }

 

posted @ 2022-05-20 21:58  藤原豆腐渣渣  阅读(28)  评论(0编辑  收藏  举报