常用类-包装类

包装类

基本数据类型所对应的引用数据类型

基本数据类型存在栈里面,存的地址

引用数据类型存在堆里面

Object可以统一所有数据,包装类默认的是null

类型转换与装箱,拆箱

八种包装类提供不同类型间的装换方式:

  • Number父类提供的6个共性方法

  • parseXXX()静态方法 (字符串和基本类型的装换

  • valueOf()静态方法 (基本类型转引用类型

需要保证类型兼容,否则抛出NumberFormatException异常

package studyObject.packet;
​
public class Demo01 {
​
    public static void main(String[] args) {
//        int num = 10;
​
        //类型装换 :装箱  基本类型改为引用类型
        int num1 = 10;
        //使用Integer类创建对象
        Integer integer1 = new Integer(num1);
        Integer integer2 = Integer.valueOf(num1);
​
        //类型装换  拆箱  引用类型改基本类型
        Integer integer3 = new Integer(100);
        int num2 = integer3.intValue();
​
        //上面是JDK1.5前面使用,1.5后提供自动装箱,拆箱功能
        int age = 30;
        //自动装箱
        Integer integer4 = age;
        //自动拆箱
        int age2 = integer4;
​
        //基本类型和字符串之间的装换
        //1基本类型转字符串
        int n1 = 100;
        //1.1使用+号
        String s1 = n1+"";
        //1.2使用Integer中的toString方法
        String s2 = Integer.toString(n1);
        n1=15;
        String s3 = Integer.toString(n1,16);//变为16进制返回
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
​
        //2字符串转基本类型
        String str = "150";
        int n2 = Integer.parseInt(str);
        System.out.println(n2);
​
        //boolean字符串形式转成基本类型:“true”-----》true    非“true”----》false
        String str2 = "true";
        String str2_1 = "tue";
        boolean b1 = Boolean.parseBoolean(str2);
        boolean b1_1 = Boolean.parseBoolean(str2_1);
        System.out.println(b1);
        System.out.println(b1_1);
​
    }
​
}
​

整数缓存区

java预先创建了256个常用的整数包装类型对象

范围-128 ----- 127 在范围内就指向缓存区里的

package studyObject.packet;
​
public class Demo02 {
​
    public static void main(String[] args) {
        //面试题
        Integer integer1 = new Integer(100);
        Integer integer2 = new Integer(100);
​
        System.out.println(integer1==integer2);//结果false  因为引用类型比较地址,new了两个,地址不一样
​
        Integer integer3 = 100;//自动装箱
//    Integer integer3 = Integer.valueOf(100);//自动装箱实际是使用valueOf方法
        /*
        因为使用valueOf方法如果数字大于-128,小于127  就会从cache数组(Integer缓存区)里面取,所以两个地址一样
         */
        Integer integer4 = 100;
        System.out.println(integer3==integer4);//true
​
        Integer integer5 = 200;//自动装箱
        Integer integer6 = 200;
        System.out.println(integer5==integer6);//false
    }
​
}
​

拆箱与装箱(难度:★ 频率:★)

Java-自动拆箱/装箱/实例化顺序/缓存 – 自学精灵

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值