本文主要是介绍wrapper类注意,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Integer、Boolean等wrapper类以及BigInteger、BigDecimal是immutable的,所以也有与String类似的地方,不过没有IntegerBuffer之类的东西。不过Float, Double比较特殊。如B$[Dw
T a1 = 10; //T代指Byte,Integer,Short,Long,Boolean。 注:应用了JDK5的AUTOBOXINGou,iDi
T a2 = 10;0&HV
if (a1 == a2)Hk:UdG
System.out.println(true);wK
else©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 -5
System.out.println(false);*z
这时总是true,和String有点类似Q
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 G]M
//Float时BI,rP^
Float i1 = (float)10.0;yg$p
Float i2 = (float)10.0;M_uc#O
if (i1==i2)J/
System.out.println(true);h`B n
else©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 )
System.out.println(false);HbYZz
这时总是false>
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 Su
//Double时"8OX
Double i1 = 10.0;QcYHa
Double i2 = 10.0;pd
if (i1==i2)+vh{~D
System.out.println(true);>TD7R
else©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 v2
System.out.println(false);+n}5,;
这时总是falseZp@>*
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 XA#i
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 #vQ^
总之如果比较两个Wrapper类的值用equals,以免不必要的麻烦2TY<+X
3) 再看GV*
String s1 = new String(“Hello”);IdKVZ
String s2 = new String(“Hello”);XWF|&"
s1 == s2 = false;#WxS
//因为new的时候JVM不管heap中有没有”Hello”对象都会产生一个新的”Hello”对象X
String s3 = “Hello”; //重新创建对象”Hello”, 并令s3指向对象”Hello”26~f
s3 == s1 = false; //不同对象当然false)
String s4 = “Hello”; &G,Xk|
s3 == s4 = true; //故伎重演,jvm清楚的知道哪些用了new,哪些没用newi!:{K
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 8.CDv
3. 方法的参数传递中都是以reference传递,而primitive传递的是副本,但如果传递的是Integer、Boolean等wrapper类和String类的Object则是以immutable方式传递。示例:pXKx%`
import java.awt.Point;GA'kw&
class HelloWorld7Y
{©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 j
public static void modifyPoint(Point pt, String j, int k, Integer m, Boolean b)0_1PDM
{+hF
pt.setLocation(5,5); h7
j = "15";5
k = 25;U
m = 35;D4K
b = true;@
System.out.println("During modifyPoint " + "pt = " + pt +|85
" and j = " + j+ " and k = "+ k+ 6gaWUR
" and m = "+ m+ " and b = "+ b);Rax)O
}>
©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 XE#!Y
public static void main(String args[])ZB8[
{Lfoo#
Point p = new Point(0,0); Aik^1B
String i = "10";Z3]!A
int k = 20;hg`*
Integer m = 30;:4
Boolean b = false;^7g{/k
System.out.println("Before modifyPoint " + "p = " + p +O
" and i = " + i+ " and k = "+ k+ G~c^l
" and m = "+ m+ " and b = "+ b);,
modifyPoint(p, i, k, m, b); m*]
System.out.println("After modifyPoint " + "p = " + p +TO~
" and i = " + i+ " and k = "+ k+ Mn +
" and m = "+ m+ " and b = "+ b);C
}xfm
}©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 |;
输出结果:vg[Bhz
Before modifyPoint p = java.awt.Point[x=0,y=0] and i = 10 and k = 20 and m = 30 and b = falseYKCv:`
During modifyPoint pt = java.awt.Point[x=5,y=5] and j = 15 and k = 25 and m = 35 and b = trueYbX(
After modifyPoint p = java.awt.Point[x=5,y=5] and i = 10 and k = 20 and m = 30 and b = false[
这篇关于wrapper类注意的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!