String 的一些模糊问题总结
采集日期:2008-5-3作者:inc_root(注:本数据由系统自动采集,内容与BHCODE无关)
问题一:我声明了什么!String s = "Hello world!";许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个
String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如
果要准确的回答,一半的人大概会回答错误。这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任
何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事
情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象
的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:String string = s;我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个
对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。 问题二:"=="和equals方法究竟有什么区别?==操作符专门用来比较变量的值是否相等String a=new String("foo");String b=new String("foo");a==b>>>>>fla