当前位置:编程学习 > JAVA >>

string池,常规区,代码区,堆栈是什么?

String s1=new String("abc");
String s2="abc"
如果abc没有被new的话会在String池中创建abc,如果new的话会在堆中new出的对象,在栈中创建引用对吗?
java中存在string池,常规区,代码区,堆栈还有什么不清楚,谁能帮我梳理下 --------------------编程问答-------------------- 首先没有String池这个概念吧。。
至于原理,建议楼主看一下
http://blog.csdn.net/songjie521/article/details/3368386
感觉写的还不错
--------------------编程问答-------------------- 我不知道有没有String这个概念!
但是new出来的对象是放在堆中的;
String s1=new String("abc"); 这条语句,创建对象为1或两个;
为什么呢?
首先“abc"这个字符串,如果常量池里面已经存在的话,就不需要重新创建了,因此这就不算创建了一个新的对象,如果没有的话,就只能重新创建一个了!
new 对象你也是了解的! --------------------编程问答-------------------- 楼主可以学习一下Java虚拟机的相关知识,下面的链接讲得挺全面的。
http://blog.csdn.net/yohoph/article/details/8191875 --------------------编程问答-------------------- 最喜欢这种知其然知其所以然的态度,支持LZ.

java本质不止堆栈、方法区、常量池这么一点,我自己也是在探索当中.还是要静下心来慢慢思考深入java的学习,深入JVM中学习才能系统掌握不纠结呐。 --------------------编程问答-------------------- 好像没听说过有String池这个概念。凡是new 出来的对象,都是放在堆区里面的。而引用而是放在栈区的。比如String s1=new String(""); s1放在栈区,new出来的对象放在堆区。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,