黑马程序员技术交流社区

标题: 字符串创建问题 [打印本页]

作者: class1    时间: 2016-10-27 20:11
标题: 字符串创建问题
以字符串作为参数new一个string对象的时候,作为参数的字符串是在堆中创建还是在常量池中得到?

作者: javaee9527    时间: 2016-10-27 22:40
有两份,一份在常量池中,一份在堆内存里
作者: 晕死的小猫    时间: 2016-10-30 21:43
这个看你在哪创建的,方法中,类中,都是不同的,方法中是在栈中,方法结束了就消失了,类中,一般随类加载而加载,在常量池中

作者: 一小丢丢    时间: 2016-10-30 22:36
String str = "aaa";以这种形式创建的字符串,是直接在常量池中的;String str1 = new String("aaa"); 出来的字符串先在堆内存中创建一个对象(存常量池中字符串的地址),然后再去常量池中找有没有这个字符串,如果有就把常量池中字符串的地址传给堆内存中的对象,如果没有就在常量池中创建一个.




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