TypechoJoeTheme

Clover 的博客

统计
登录
用户名
密码
/
注册
用户名
邮箱

CloverYou

日出于东却落于西,相识人海却散于席。

29、Java包装类

2022-01-02
/
0 评论
/
18 阅读
/
正在检测是否收录...
01/02
  1. Java中为8种基本数据类型又对应准备了8种包装类8种包装类属于引用数据类型,父类是Object
  2. 如果有这么一种需求:调用doSome方法的时候要传一个数字,但是数字属于基本数据类型,而doSome方法参数的类型是Object。可见doSome方法无法接受基本数据类型的数字。

    public static void doSome(Object obj){
      System.out.println(obj);
    }

虽然doSome方法不能直接传int类型,但是可以传一个对应的包装类型

public static void main(String[] args){
  Integer myInt = new Integer(100);
  doSome(myInt);
}
  1. 8种基本数据类型对应的包转类:

| 基本数据类型 | 包装类型 |
| :----------: | :-----------------: |
| byte | java.lang.Byte |
| short | java.lang.Short |
| int | java.lang.Integer |
| long | Java.lang.Long |
| float | Java.lang.Float |
| double | java.lang.Double |
| boolean | Java.lang.Boolean |
| char | Java.lang.Character |

  1. 拆装箱

    • 装箱
      将基本数据类型 --(转换)--> 引用数据类型(装箱)
    Integer i = new Integer(100);
    • 拆箱
      将引用数据类型 --(转换)--> 基本数据类型(拆箱)
    i.intValue();// 100
  2. Integer的构造方法

Integer有两个构造方法

Integer(int value)
Integer(String s)

接受一个int或者String类型的数据

new Integer(100);// 100
new Integer("100");// 100
  1. 通过访问包装类的常量,来获取最大值和最小值

    Integer.MAX_VALUE;
    Integer.MIN_VALUE;
  2. 自动装拆箱

    • 自动装箱

      Integer x = 100;
    • 自动拆箱

      int y = x;
 虽然支持自动拆箱,当是底层实际上还是
 
Integer x = new Integer(100);
 
 由于底层使用的是new的方式创建,所以无法使用双等号"=="进行判断,双等号无法自动拆箱
 
Integer a = 1000;
Integer b = 1000;
System.out.println(a == b);// false
 ![image.png](http://qiniu-note-image.ctong.top/note/images/image-e6d15767a5624c79bc5cca5a4b36245c.png)
  1. 整数型常量池

java中为了提高程序的执行效率,将「-128 ~ 127」之间所有的包装对象提前创建好,放到了一个方法区的“整数型常量池”当中,目的是只要用这个区间的数据不需要再new了,直接从整数型常量池中取出来。

Integer a = 128;
Integer b = 128;
System.out.println(a == b);// false
Integer x = 127;
Integer y = 127;
System.out.println(x == y);// true

以上程序127并不是拆箱了,而是x,y这两个变量中保存的内存地址是同一个。双等号==比较的是对象的内存地址

源代码中,在类加载的时候创建了对应的Integer对象。

  1. NumberFormatException 异常

这个异常是出现在将String类型转int类型的时候

Integer.parseInt("中文");

JDK 1.5之后,支持自动拆箱和自动装箱。

其它包装类和Integer使用方法一样。

在进行类加载的时候,整数型常量池已经初始化好了。

JAVA学习笔记
朗读
赞(0)
版权属于:

Clover 的博客

本文链接:

https://www.ctong.top/index.php/archives/42/(转载时请注明本文出处及文章链接)

评论 (0)
CloverYou
日出于东却落于西,相识人海却散于席。
88 文章数
11 评论量
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 缓存一致性 - 点击领取
    2022-01-06
  2. 宝宝
    2022-01-02

标签云