大家来看看我这样理解String与String的比较对是不对??有分散哦:))) 看java.lang 包中String.java 源文件,即可以明白它的意思了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str1 = new String("str1");是不是就是说str1也是间接引用呢?中间有个类似str0的直接应用? String在JAVA里是class不是所谓的常量 intern方法上面的注释已经讲的很明白了不过,我想intern()==比较应该比较快吧,尤其是对非常长的相同字符串 这是我看java pitfalls的一点心得,不知道正确与否 加了new就新开内存了,指向了新的地址,并不是指向s0的。而s0是在内存里找到‘ddd’这个常量后,指向这个常量的地址,equals只是比较内容,跟内存地址没关系 我个人的理解:String s0= "ddd"; java主机在内存堆中存放"ddd",然后在堆栈中生成s0 指向内存堆中的地址。String s1 = new String("ddd");同样在内存堆中存放"ddd",然后在堆栈中生成s1指向内存堆中的地址。== 比较的是两个变量指向的地址是不是一样,equals 比较的是两个类型相同的变量存放的内容是不是相同 同意楼主的看法,这实际上在THINKING IN JAVA里已经交代了我不知道汉语怎么说,但楼主的意思应该不差的! to jjcql(jh):new出来的内存是存放一个地址,这个地址就是s0的地址 to qlampskyface(天空的样子) : 不是很清楚,new的东西都不重新开辟内存空间吗?如果是这样那怎么样才能建立一个新的ddd而不是它的引用。用clone吗? to petertangh(蓝冰):new 确实开辟了内存空间,但是这个内存空间存放的是常量"ddd"的地址要想建立一个新的"ddd",我看只有用StringBuffer了,String恐怕没戏了 大家对这个赋值有什么看法String str =null;String str ="" ;String str = new String() ;String str = new String("ddd") ;这四个有什么不同呢?,对new 的,这个我知道,就是在内存中新增一个空间,new String("ddd")楼上的已经说的很详细了,但 str = null ,str ="",有什么区别呢? 快速匹配字符串 问一个关于对象创建的问题 菜鸟的问题! 怎样在Java中将一个整形数赋给一个字符串? 关于字符串转换为时间类型的问题 关于checked exception和unchecked exception的区别,请高人指点一下,谢谢~~ 请问如何让double型的15.00,保留两位小数?? 如何建立一个非模式的Dialog窗口 怎样获得textarea中的某一行? C中的htonl用来转换IP到long型,Java中那个函数提供相同功能? 各位,帮帮忙了,有关jfreechart的,急啊!!! 求取一个浮点数的大于等于它的非负整数方法
String s0= "ddd"; java主机在内存堆中存放"ddd",
然后在堆栈中生成s0 指向内存堆中的地址。String s1 = new String("ddd");同样在内存堆中存放"ddd",
然后在堆栈中生成s1指向内存堆中的地址。== 比较的是两个变量指向的地址是不是一样,
equals 比较的是两个类型相同的变量存放的内容是不是相同
我不知道汉语怎么说,但楼主的意思应该不差的!
不是很清楚,new的东西都不重新开辟内存空间吗?如果是这样那怎么样才能建立一个新的ddd而不是它的引用。用clone吗?
String str =null;
String str ="" ;
String str = new String() ;
String str = new String("ddd") ;
这四个有什么不同呢?,
对new 的,这个我知道,就是在内存中新增一个空间,new String("ddd")楼上的已经说的很详细了,但 str = null ,str ="",有什么区别呢?