String str1 = "abc" String str2 = new String("abc"); 差异
String str1 = "abc"; String str2 = new String("abc"); 区别
String str1 = "abc";
String str2 = new String("abc"); 他俩有什么区别啊 啊
------解决思路----------------------
常量池是JVM的一块特殊的内存空间。和堆没什么关系
我给你好好解释下吧:
1.String s1 = "ubuntu";
String s2 = “ubuntu”;

2.String s3 = new String("ubuntu");
String s4 = new String("ubuntu");

很容易理解了吧 求给分
------解决思路----------------------
常量池是方法区的一部分,Java虚拟机运行时数据区内存主要有:堆,方法区、Java虚拟机栈、本地方法栈。
更详细的可以看
http://www.cnblogs.com/Cratical/archive/2012/08/21/2649985.html
String str1 = "abc";
String str2 = new String("abc"); 他俩有什么区别啊 啊
------解决思路----------------------
常量池是JVM的一块特殊的内存空间。和堆没什么关系
我给你好好解释下吧:
1.String s1 = "ubuntu";
String s2 = “ubuntu”;
2.String s3 = new String("ubuntu");
String s4 = new String("ubuntu");
很容易理解了吧 求给分
------解决思路----------------------
String str1 = "abc"; //"abc"在常量池,引用str1存储的是"abc"在常量池的地址
String str2 = new String("abc"); //new String("abc") 在堆上分配内存,引用str2存储的是new String("abc") 在堆上的内存地址
//还有一点区别是str1的类加载时就完成了初始化,而str2 要在执行引擎执行到那一行代码时才完成初始化。
常量池和堆是一起的?能详细讲下在内存中的栈和堆上是咋样分配的?
常量池是方法区的一部分,Java虚拟机运行时数据区内存主要有:堆,方法区、Java虚拟机栈、本地方法栈。
更详细的可以看
http://www.cnblogs.com/Cratical/archive/2012/08/21/2649985.html