包装类

一、引入

  1. 目的:让 Object统一管理所有类型的数据。
  2. 包装类:基本数据类型对应的 对象类型的类 被称为基本
    数据类型的包装类。

二、基本 数据类型 对应包装类型

  1. 包装类都是位于 java.lang中,无需导入包,包装类都被
    final修饰,没有子类。

  2. 对应关系如下:
    三、数据类型之间的转换(以Integer为例)

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

三、数据类型之间的转换(以Integer为例)

  1. int 和 Integer 之间的转换
    (1) int —> Integer [关注]

     int a = 12; 
     a. Integer i1 = new Integer(a);//利用构造方法System.out.println(i1);//12:Integer类中覆 盖类toString 
     b. Integer i2 = Integer.valueOf(a);//Integer 类中静态方法
     (2) Integer -> int
     int n = i2.intValue();//Integer类中成员方法
    
  2. String 和 Integer之间的转换
    (1) String -> Integer

     a.Integer i3 = new Integer("123");//利用构造方法
     b.Integer i4 =Integer.valueOf("123");//Integer类静态方法
     (2) Integer -> String
     a.String s1 = i4.toString(); 
     b.String s2 = i4+""; //利用字符串拼接
    
  3. int 和 String 之间的转换
    (1) int --> String

     int a2 = 32; String s3 =a2+"";//利用字符串的拼接
    

(2) String --> int 【开发应用重点】

	String a = 18; 
	int age = Integer.parseInt(a);//Integer类中静 态方法

注意:String转换为 Integer/int时,要求 String中数据必须是纯数值类型,并且不能超过 Integer类型的数据范围,否则编译通过,但是运行报错,错误信息如下:java.lang.NumberFormatException(数值格式转换异常)

四、自动的装箱 和 拆箱

  1. JDK5.0版本提供了自动装箱 和 拆箱功能,即:基本数据
    类型和对应的包装类型之间可以相互转换。

  2. 装箱和拆箱
    (1) 装箱:将基本数据类型转换为 对应的包装类型

      Integer i1 = 12;// int ----> Integer
    

(2) 拆箱:包装类型 转换为 对应的基本数据类型

Integer i1 = 12; 
int a = i1; // Integer ---> int 
  1. 自动装箱的原理分析
    (1) 自动装箱 时,jvm默认调用 Integer类中的静态方法valueOf(int n),实现对应 int --> Integer之间的转换
    (2) 缓冲区的作用:Integer对常用数据段 -128~127进行了预先包装处理,包装的结果存储在 常量池(也称为缓冲区),为了提高 包装的效率,从而也提高jvm内存的空间利用率。

(4) 面试题目:分析以下程序打印输出的结果;

Integer i1 = 12; 
Integer i2 = 12; // 从缓冲区中获取 12 的包装结果 
System.out.println(i1==i2);// true 
Integer i3 = 255;// new Integer(255) 
Integer i4 = 255;// new Integer(255); 
System.out.println(i3==i4);//false

五、包装类的实际开发应用

  1. 应用场景:类中属性由 之前的基本数据类型,替换为 对应包装类型
  2. 应用场景的目的:是为了区分有效数据和无效数据的,例如:0和null;0.0 和 null 等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值