A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 思考。。。 中级黑马   /  2015-6-30 11:15  /  384 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。
  2.                 String s2 = new String("abc");

  3.                 //s1和s2有什么区别?
  4.                 //s1在内存中有一个对象。
  5.                 //s2在内存中有两个对象。
复制代码


我想请问一下,s1的对象是在方法区的常量池?而s2的两个对象是一个在堆内存,一个在方法的常量池吗?我点搞不清楚

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

9 个回复

倒序浏览
理解的没错
回复 使用道具 举报
对,所以是两个不同对象
回复 使用道具 举报
s2是指向堆内存new String,而new String指向方法区abc
回复 使用道具 举报
s1指向常量池中的地址,s2指向堆内存中的地址。
回复 使用道具 举报

s2是指向堆内存new String,而new String指向方法区abc
回复 使用道具 举报 1 0
进来看看!
回复 使用道具 举报
你说对了
回复 使用道具 举报
s1指向常量区域,s2指向堆内存
回复 使用道具 举报
明白了,多谢回复:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马