社区
Java SE
帖子详情
String a = new String("b");到底是几个对象?
sunwei_07
2007-12-14 02:16:07
我只知道一个是“b”,一个是引用它的a
为什么有人说这是3个对象呢?
...全文
3585
148
打赏
收藏
String a = new String("b");到底是几个对象?
我只知道一个是“b”,一个是引用它的a 为什么有人说这是3个对象呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
148 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hnthchuan
2011-09-01
打赏
举报
回复
绝对是两个。。。
tyzqqq
2010-05-17
打赏
举报
回复
高人们都笑呢
chendabian
2008-06-26
打赏
举报
回复
小菜鸟 来学习
jiaxinyuck110
2008-06-26
打赏
举报
回复
呵呵什么都要拿事实说话
这个问题只能在2和3之间讨论至于1个基本排除
82楼测试已经明确说明
hemaily
2008-06-26
打赏
举报
回复
我肯定 是两个对象 一个池中的 一个堆中的
jiaxinyuck110
2008-06-26
打赏
举报
回复
[Quote=引用 12 楼 mysticpsvm 的回复:]
String s = "b";
String sg = new String("bb");
[/Quote]
解释下?
难道我以前的理解正好反了
这是我头次碰到这种说法!
jianghao168
2008-06-26
打赏
举报
回复
迷了啊,我对java中的存储方式一点都不了解啊
楼上那么多的讲解让我觉得自己好像不懂编程一样
要学习和了解的东西很多啊!!!
software820830
2008-06-26
打赏
举报
回复
8个,也有可能是十个或二十个,嘿嘿嘿,
zhouxianglh
2008-06-23
打赏
举报
回复
是两个吧? 我找不到第三个对象.
lzx6169936
2008-06-23
打赏
举报
回复
绝对是俩
goosman
2008-06-23
打赏
举报
回复
关于String a = new String("b");到底有几个对象.
说三种也是不错的.
head中一个对象.
stack中一个引用.
datasegement中一个字符串常量.
cryinghawk
2008-06-23
打赏
举报
回复
两个啊!!
绝对两个。。
sd5816690
2008-06-23
打赏
举报
回复
这帖子居然能顶这么高?
看来我还没理解存在于冥冥中JAVA的灵魂
m99801148
2008-06-23
打赏
举报
回复
如果别人有意见 那请问 生成一个String的对象a 并为其赋值"b" 怎么写?
m99801148
2008-06-23
打赏
举报
回复
String a = new String("b");
只有一个对象a
解析
String a 声明一个字符串类String的对象a
new String() 为对象a分配空间
=...("b") 为对象a赋值"b"
生成一个对象需要声明 分配空间 赋值.
这是java生成对象的基本格式
------------------------------------
lyric1812
2008-06-21
打赏
举报
回复
没有必要争执下去了!
only two!!
老话题了
richard_first
2008-06-21
打赏
举报
回复
2个,"b"和new String("b")
wyyl00
2008-06-21
打赏
举报
回复
很明显是俩个嘛。。。
phoenix_dt
2008-06-21
打赏
举报
回复
[Quote=引用 82 楼 java2000_net 的回复:]
同意80楼说法,比较容易理解!
支持2个对象
String a = new String("b");
可以拆分成如下2步操作
String b = "b"; // 创建一个字符串对象 b
String a = new String(b); // 此时,会再次创建一个对象a;
帖一段测试代码和运行结果
public class TestString {
public static void main(String[] args) {
String a = "b";
String b = new String(a);
String c = "b";
System.ou…
[/Quote]
可以理解为a是一个字符串引用它指向String pool中的字符串b;
b是一个字符串引用的对象指向heap里新创建的字符串对象b
这跟创建几个对象有何关系?
phoenix_dt
2008-06-20
打赏
举报
回复
以前都没想过这种问题!我也觉得是2个!!24楼解释的很清楚了!
加载更多回复(126)
基于Web的酒店客房管理系统的设计与实现+论文+开题
if(oldPassword.equals(admin.get("password").to
String
())){
String
sql="update t_admin set password=? where id=?"; db.update(sql,
new
Object[]{
new
Password,admin.get("id")}); return renderData(true,"1",...
String
a=
new
String
("aa")
String
b=
new
String
("aa")
到底
有几个
对象
?
在gc没回收前是四个
对象
,回收后就是三个
对象
了。所以说可以是四个
对象
也可以是三个
对象
,要看在哪个层面上描述这个问题。
String
a=
new
String
("aa")这里会有两个
对象
,一个是
new
出来的内存空间,一个是放到了
String
池中,而
String
b=
new
String
("aa")也会生成两个
对象
,只是
new
出来的这个内存空间没有被使用,jvm会将b指向之前a放到池中的"aa",所以b...
String
a=
new
String
("b"+"c")会创建几个
对象
?
String
a=
new
String
(“b”+”c”)会创建几个
对象
?
String
a=
new
String
(“b”,”c”)会创建几个
对象
?
String
a=
new
String
(“b”+”c”)又会创建几个?为什么?1.
String
a=
new
String
(“b”+”c”); b一个 c一个 b+c一个 a一个 总共四个 1、Java中
New
String
str = “abc“;和
String
str =
new
String
(“abc“);
到底
分别创建了几个
对象
?
一、
到底
创建了几个
对象
1、
String
str = “abc”; 创建了几个
对象
?0个 或者 1个 2、
String
str =
new
String
(“abc”);创建了几个
对象
? 1个或2个 二、首先了解几个基本的概念: 点击了解 JVM的内存管理 1、
String
是一个特殊的包装类数据。即可以用
String
str =
new
String
(“abc”);的形式来创建,也可以用Stri...
String
a =
new
String
(“abc“); 创建了几个
对象
?
String
a = “abc“; 呢?
可以看到
String
类的equals方法**先比较两个
对象
的引用地址,此时运用了 == 的关系运算符。如果两个
对象
的引用地址不同,会比较字符串中的每个字符是否相同,全部相同则返回true,否则返回false。编译器通过语法分析,会将常量表达式计算求值,并用求出的值来替换表达式,而不必等到运行期间再进行运算处理,从而在运行期间节省处理器资源。所以上面的语句在运行期就等同于
String
a = “abcd”;通过之前的几个问题可知变量a、b、c的引用地址相同。故a == b和a == c的结果为true。
Java SE
62,614
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章