1.[Think in Java笔记]自动包装器和装箱

发布时间:2021-08-02 23:37 来源:https://blog.51cto.com/sauron/ 阅读:155 作者:LinkedKeeper 栏目: 云计算 欢迎投稿:712375056

必须在某处有一个new的调用。

 

primitive.parseXxx(String) —— 将String类型转换为基本类型

 

doubleString

 

booleanString

long

Integer y = new Integer(567); y++;


int i1 = 1024; Integer i2 = Integer.valueOf("1024"); System.out.println(i1 == i2);//true int i3 = 24; Integer i4 = new Integer("24");//自动装箱 System.out.println(i3 == i4);//true //这里实际上是:i1 == i2.intValue() int i5 = new Integer("10");//自动拆箱 Integer i6 = new Integer("10"); System.out.println(i5 == i6);//true Integer i7 = new Integer("10");//自动装箱 Integer i8 = new Integer("10");//自动装箱 System.out.println(i7 == i8);//false


 

Byte

包装器转换

创建包装器对象


Integer i1 = 1000; Integer i2 = 1000; System.out.println(i1 == i2);//false Integer i3 = 10; Integer i4 = 10; System.out.println(i3 == i4);//true


int i1 = 1024; Integer i2 = Integer.valueOf("1024"); System.out.println(i1 == i2);//true int i3 = 24; Integer i4 = new Integer("24"); System.out.println(i3 == i4);//true int i5 = new Integer("10"); Integer i6 = new Integer("10"); System.out.println(i5 == i6);//true Integer i7 = new Integer("10"); Integer i8 = new Integer("10"); System.out.println(i7 == i8);//false


byte

 

longString

 

包装器类概述

 

Double

 

shortString

Double d = Double.valueOf("3.14");




基本类型

double

Java5之前:

 

byteString

Integer y = 567; Integer x = y; System.out.println(y == x);//true y++; System.out.println(x + " " + y);//567 568 System.out.println(y == x);//false


 

Short

 

int

除了Character之外,其余包装器类/都提供两个构造函数:一个以要构建的基本类型作为变元,另一个以要构建类型的String表示作为变元。如:

boolean

对于所有的包装器类,如果两个对象具有相同的类型和相同的值,他们就是相等的。

l从\u0000到\u007f的字符(7f是十进制的127)

 
 

double d = Double.parseDouble("3.14");


 

构造函数变元


 
int x2 = y.intValue(); x2++; y = new Integer(x2);


 

float

 

Long


 

floatdoubleString


当==用于比较基本值和包装器时,包装器将解除包装,而比较的是在基本指之间进行的。

关联:整理了一些Java软件工程师的基础知识点

装箱、==和equals()方法


 

Integer

Integer y = new Integer(567); int x = y.intValue(); x++; y = new Integer(x);


代码看上去/在一个对象引用变量上/使用后递增运算符。我们知道,包装器对象是不可变的,这个例子似乎与这种声明相矛盾。实际上,创建了第二个包装器对象,并将值设置为568


short

 

char



 

Character

 


lBoolean

 

包装器类

说明:笔记内容摘自《SCJP考试指南》

l-128~127的Short和Integer


 

intString


为什么当==指出i3和i4是同一个对象时,i1和i2是不同的对象?为了节省内存,对于下列包装器的对象的两个实例(通过装箱创建),当他们的基本值相同时,他们总是==关系:

 

Boolean包装器类的构造函数带有boolean值true或false,或者以一个值为"true""false"的String作为变元。

自动装箱

char

Integer i1 = new Integer(24); Integer i1 = new Integer("24");


Float f = new Float(3.14f); short s = f.shortValue();



 

Boolean

因此,在底层,当编译器到达"y++;"这一行时,它必须用如下所示的内容代替它:

在Java5新特性中:

lByte

Wrapper.valueOf(String) —— 将String转换为包装器


primitive.xxxValue() —— 将包装器转换为基本类型

 

Float

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。

ja