常用类_包装类型

2020-09-19  本文已影响0人  是归人不是过客

java中有八种基本数据类型对应的包装类型:
基本数据类型 包装类型
byte :java.lang.Byte
short:java.lang.Short
int:java.lang.Integer
long:java.lang.Long

float:java.lang.Float
double:java.lang.Boolean

boolean:java.lang.Boolean

char:java.lang.Character

思考:java中提供的八种基本数据类型不够用吗?为什么java中还需要提供对应的包装类那

举个栗子:

public class Test{
    public static void main(String[] args) {
//      1、int -->Integer
        Integer i1 = Integer.valueOf(10);
        
//      2、Integer-->int
        int i2 = i1.intValue();
        
//      3、String -->Integer
        Integer i3 = Integer.valueOf("10");
        
//      4、Integer -->String
        String i4 = i3.toString();
        
//      5、String -->int
        int i5 = Integer.parseInt("123");
        
//      6、int -->String
        String s2 = 10 + "";
    }
}
public class Test{
//  需求:规定m1方法可以接受java中任何一种数据类型
//  m1方法如果想接收byte类型的数据,可以将byte类型先包装成java.lang.Byte,再传递参数
    public static void main(String[] args) {
        byte b = 10;
        
        // 引用类型
        Byte b1 = new Byte(b);
        m1(b);
    }
    
    public static void m1(Object o){
        System.out.println(o); //10 Byteyi已经将object。toString方法重写
    }
}

深入自动装箱和自动拆箱:

  1. 自动装箱和自动拆箱是程序编译阶段的一个概念和程序运行无关
    2、自动装箱和自动拆箱主要的目的是方便程序的编码

举个栗子:

public class Test{
    public static void main(String[] args) {
        Integer i1 = new Integer(10);
        Integer i2 = new Integer(10);
        
        // 这里不hi自动拆箱
        System.out.println(i1 == i2); //false
        
//      比较两个Integer类型的数据是否相等,不能用“==”
//      Integer已经重写了Object中的equals方法,比较的是内容
//      Qbject中的equals()比较的是内存地址
        System.out.println(i1.equals(i2)); //true
        
//      注意一下程序
//      如果数据是在(-128——127)之间,java中引入了一个“整性常量池”
        Integer i5 = 127;
        Integer i6 = 127;
        
        System.out.println(i5 == i6); // true
        
        Integer i7 = 128;
        Integer i8 = 128;
        
        System.out.println(i7 == i8); // false
        
        Integer i9 = -129;
        Integer i10 = -129;
        
        System.out.println(i9 == i10); // false
    }
}
上一篇 下一篇

猜你喜欢

热点阅读