如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
java中equals与==的区别HYPERLINK"javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();"收藏我的一点点理解:equals是比较不同的两个对象的值是不是相等。==是比较想同的两个对象的值是不是相等。这是引用的文章:======================================================================================初学Java有段时间了,感觉似乎开始入了门,有了点儿感觉但是发现很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对String这个特殊的对象有了点感悟大家先来看看一段奇怪的程序:publicclassTestString{publicstaticvoidmain(String[]args){Strings1="Monday";Strings2="Monday";}}这个程序真是简单啊!可是有什么问题呢?1.来自String的忧虑上面这段程序中,到底有几个对象呢?可能很多人脱口而出:两个,s1和s2为什么?String是final类,它的值不可变。看起来似乎很有道理,那么来检测一下吧,稍微改动一下程序就可以看到结果了:publicclassTestString{publicstaticvoidmain(String[]args){Strings1="Monday";Strings2="Monday";if(s1==s2)System.out.println("s1==s2");elseSystem.out.println("s1!=s2");}}呵呵,很多人都会说已经不止两个对象了编译并运行程序,输出:s1==s2啊!为什么s1==s2?==分明是在说:s1与s2引用同一个String对象--"Monday"!2.千变万化的String再稍微改动一下程序,会有更奇怪的发现:publicclassTestString{publicstaticvoidmain(String[]args){Strings1="Monday";Strings2=newString("Monday");if(s1==s2)System.out.println("s1==s2");elseSystem.out.println("s1!=s2");if(s1.equals(s2))System.out.println("s1equalss2");elseSystem.out.println("s1notequalss2");}}我们将s2用new操作符创建程序输出:s1!=s2s1equalss2嗯,很明显嘛s1s2分别引用了两个"Monday"String对象可是为什么两段程序不一样呢?3.在String的游泳池中游泳哈哈,翻了翻书终于找到了答案:原来,程序在运行的时候会创建一个字符串缓冲池当使用s2="Monday"这样的表达是创建字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在第一个程序中,s1先被放到了池中,所以在s2被创建的时候,程序找到了具有相同值的s1将s2引用s1所引用的对象"Monday"第二段程序中,使用了new操作符,他明白的告诉程序:“我要一个新的!不要旧的!”与是一个新的"Monday"Sting对象被创建在内存中。他们的值相同,但是位置不同,一个在池中游泳一个在岸边休息。哎呀,真是资源浪费,明明是一样的非要分开做什么呢?4.继续潜水再次更改程序:publicclassTestString{publicstaticvoidmain(String[]args){Strings1="Monday";Strings2=newString("Monday");s2=s2.intern();if(s1==s2)System.out.println("s1==s2");elseSystem.out.println("s1!=s2");if