码迷,mamicode.com
首页 > 其他好文 > 详细

自动装箱和拆箱

时间:2020-02-12 13:14:39      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:++   规范   操作   -128   执行   装箱拆箱   intvalue   arraylist   变换   

1.自动装箱

  ArrayList<Integer> list = new ArrayLlist<Integer>();

  list.add(2);

自动变换为

  list.addInteget.valueOf(2);

这种变换称为自动装箱。

 

2.自动拆箱

  int  n = list.get(i);

以上语句被翻译为

  int n = list.get(i).intValue();

也就是说自动拆箱。

 

3.自增操作产生装箱拆箱

  Integer n = 3;

  n++;

编译器将自动插入一个对象拆箱的指令,然后进行自增计算,最后把结果装箱。

 

4.自动装箱的一些规范

  自动装箱规范要求boolean、byte、char <= 127,介于-128~127之间的short和int被包装到固定的对象中。例如

  Integer a = 100;

  Integer b = 100;

则a == b所得到的结果是true

  Integer a = 1000;

  Integer b = 1000;

则a == b 所得到的结果是false

 

5.一些注意点

  装箱和拆箱是编译器认可的,而不是虚拟机,编译器在生成类的字节码时,插入必要的方法调用,虚拟机只是执行这些字节码。

    

自动装箱和拆箱

标签:++   规范   操作   -128   执行   装箱拆箱   intvalue   arraylist   变换   

原文地址:https://www.cnblogs.com/quanhaijie/p/12298341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!