黑马程序员技术交流社区

标题: 面关于代码String str = new String(“abc”);描述正确的是 [打印本页]

作者: 自然醒mmm    时间: 2016-4-25 19:51
标题: 面关于代码String str = new String(“abc”);描述正确的是
a)创建了一个字符串对象   
b)创建了两个对象,一个是new String(  )对象,一个是”abc”对象   
c)str.equals(“abc”);将返回true   
d)str.equals(“abc”);将返回false
作者: 1191065242    时间: 2016-4-27 22:31
方法区中有一块地方叫常量池,new String("abc")之前会先去检查常量池中是不是有“abc”这个字符串常量,如果有的话直接创建new String("abc")这个对象,如果没有“abc”的话先去常量池中创建“abc”,再去堆内存中创建new String("abc"),最后赋值的是堆内存的地址,“abc”存在的地址是方法区中的常量池,new String("abc")是存放在堆内存中。




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