关于String 中的==号 String s1="123";Stirng s2="123";s1==s2 为TRUE,为什么呢,String 不是引用类型吗,==是比较内存地址的为什么在这里内存地址相同了呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对于String来说“123”值相等的话它们会使用同一个引用的 老问题!常量区中只有一个"123",s1和s2指向的都是这个地址,这样就不是了,String s1="123"; String s2 = new String("123");s1==s2就是false. String的设计属于共享设计,所以如果直接赋值的话是不会重新开辟新的内存空间的,所以地址是一样的 这个还真没用过,一般得用equals方法。 String类是引用类型 并且声明为String类型的变量不可以修改内容 就像你声明的s1和s2变量 其内容都是123 这只是说明String类型而“==”运算符简单来说是比较两个变量是否指向同一个内存地址 所以是TRUE建议你去看看“==”运算符与equals()方法的区别 String s1="123"; Stirng s2="123"; 这两句是不是跟下面两句要表示的意义差不多String a="foo";String b=new String("foo").intern(); String的设计采用共享式的,有一个常量池用来存贮。如果一个String在常量池中已经存在,下次就直接引用这个,不再新创建一个对象。 如何将.NET三层结构中的增、删、改操作用一个方法封装呢? 画图问题 每次画图 怎么覆盖 才不会覆盖原来的图形 java没有goto如何实现这样的程序? 插入的中文成了?怎么解决 难!难!难!...一条直线的问题...解决立即给分 如何多次产生类的唯一实例!!!分不够再加! 关于applet 的问题? net高手请进! zip文件中包含有文件夹,怎么解包? 郁闷的问题,谁能给我一个合理的解释 java基础数组(初学者) 泛型设计中<T> 和<E>的区别·
“123”值相等的话
它们会使用同一个引用的
这样就不是了,String s1="123"; String s2 = new String("123");
s1==s2就是false.
Stirng s2="123";
这两句是不是跟下面两句要表示的意义差不多
String a="foo";
String b=new String("foo").intern();
如果一个String在常量池中已经存在,下次就直接引用这个,不再新创建一个对象。