03包装类

包装类

一、什么是包装类?

  • 基类数据类型所对应的引用数据类型。(基本类型本身是没有属性和方法的)

    • 基本类型一般都是存储在栈里面
    • 引用类型数据都是存储在堆里面,栈里面存的是引用类型的一个地址。
  • Object 可统一接收所有数据,包装类的默认值是null。

  • 包装类对应的基本类型:

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

二、类型转换与装箱、拆箱

  • 装箱:基本类型转换成引用类型(栈里面的数据拿到堆里面)

  • 拆箱:引用类型转换成基本类型(堆里面的数据拿到栈里面)

    装箱和拆箱:

    public static void main(String[] args) {
    		//类型转换:装箱,基本类型转换成引用类型
    		//基本类型
    		int num1 = 18;
    		//使用Integer类创建对象
    		Integer integer1 = new Integer(num1);	//有删除线,过时的方法
    		Integer integer2 = Integer.valueOf(num1);//新的方法
    		
    		//类型转换:拆箱,引用类型转成基本类型
    		Integer integer3 = new Integer(100);
    		int num2 = integer3.intValue();
    		
    		
    		//JDK1.5之后提供了自动装箱和拆箱
    		int age = 30;
    		//自动装箱
    		Integer integer4 = age;
    		//自动拆箱
    		int age2 = integer4;
    	}
    

三、8种包装类提供不同类型间的转换方式

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

  • parseXXX()静态方法。

  • valueOF()静态方法。

    基本数据类型和字符串之间的转换:

    public static void main(String[] args) {
    		//基本类型和字符串之间转换
    		//1.基本类型转成字符串
    		int n1 = 255;
    		//1.1 使用+号
    		String s1 = n1+"";
    		//1.2使用Integer中的toString()方法
    		String s2 = Integer.toString(n1, 16);//使用16进制,将n1转换成字符串
    		
    		System.out.println(s1);
    		System.out.println(s2);
    		
    		//2字符串转成基本类型
    		String str = "150";
    		//使用Integer.parseXXX();
    		int n2 = Integer.parseInt(str);//字符串不能出现非数字的字符
    		System.out.println(n2);
    		
    		//boolean的字符串形式转换成基本类型,"true"--->true,只要不是"true"就会转换成false
    		String str2 = "tru";
    		boolean b1 = Boolean.parseBoolean(str2);
    		System.out.println(b1);
    	}
    

    1

  • 注意:需要保证类型兼容,否则抛出NumberFormatException异常。

四、Integer缓冲区

  • Java预先创建了256个常用的整数包装类型对象,在实际应用中,可以对已创建的对象进行复用。

    public static void main(String[] args) {
    		//面试题
    		Integer integer1 = new Integer(100);
    		Integer integer2 = new Integer(100);
    		System.out.println(integer1 == integer2);//false
    		
    		Integer integer3 = Integer.valueOf(100);
    		Integer integer4 = Integer.valueOf(100);
    		System.out.println(integer3==integer4);//true,因为100是在-128和127之间的256个常用的整数包装类型对象
    		
    		Integer integer5 = Integer.valueOf(200);
    		Integer integer6 = Integer.valueOf(200);
    		System.out.println(integer5==integer6);//false,因为不在256个常用的整数包装类型对象范围
    	}
    

    2

posted on   ahssmy  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示