string类型的相等 String pp="qq"; String ee="qq";为什么pp==ee是ture?它们在内存当中如何分配? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 pp-->qq;ee-->qq;pp/ee-->qq;pp==ee. 使用直接赋值的方式,如果java虚拟机发现内存中应经有了字符串,以后再次将该相同的字符赋值时,将会把该字符串的地址空间给它,而不会开辟新的内存空间。 pp和ee均指向同一块内存(值为qq),如果你换成:String pp=new String("qq"); String ee="qq"; 你就会发下pp==ee为false了,因为此时pp和ee指向不同的内存 String pp="qq"; String ee="qq"; String pp="qq"; 这个创建的时候首先会到池里找, 要池里没有的话就会创建一个, String ee="qq"; 前面一个已经创建了, 所以直接用池里的, 他不是new 的 要是new 的就在堆里面了 上楼正解,关于String的问题真是不少,可以总结一下了 pp ee这两个变量是指向同一个“qq”,因为是String 类型的 ,所以在字符串相同时,内存中只有一个拷贝,但是如果是Stringbuffer就不同了我建议去看看 帮助文档,一目了然! equals用来比较对象的值==用来比较基本数据类型 Hibernate get()方法也会出现懒加载异常吗? Java软件工程师 和 Java程序员 是不是一个概念? 基础问题 大家好,请问一个并发线程的问题,希望高手能给俺解答一下,谢谢拉 请教!!! java视频处理 java如何进行位操作?? 问一个字符编码解码的问题!在线等待。 有用SWING的吗?交个朋友! 介绍一下java发email的问题, mail API or sun.net.smtp.SmtpClient? 怎么输出的是地址·而不是比较的结果 cardlayout 实现翻页问题
ee-->qq;
pp/ee-->qq;
pp==ee.
String pp=new String("qq");
String ee="qq";
你就会发下pp==ee为false了,因为此时pp和ee指向不同的内存
String ee="qq";
String pp="qq"; 这个创建的时候首先会到池里找, 要池里没有的话就会创建一个, String ee="qq"; 前面一个已经创建了, 所以直接用池里的, 他不是new 的 要是new 的就在堆里面了
我建议去看看 帮助文档,一目了然!
==用来比较基本数据类型