黑马程序员技术交流社区

标题: JAVA基础问题 [打印本页]

作者: 刘彦宗    时间: 2015-10-15 10:25
标题: JAVA基础问题
String a=new String("abc");    String a="abc";
// 他们分别是在内存中怎么进行的呢?
作者: 刘彦宗    时间: 2015-10-15 10:30
我的理解是   堆:存放所用new出来的对象   栈:存放对象的引用(也就是地址),基本数据类型产生的变量   常量池:(这个比较特殊)是用来存放String常量,如“abc”。那我的第一个 a在栈中 是引用,然后再堆中new出一个对象“abc”。第二个a则是先声明一个字符串常量,首先在池中查找有没有这个“abcdef”,如果没有,在池中产生一个“abcdef”,然后把引用赋值给栈中的a




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2