社区
Java SE
帖子详情
String的一个小问题
yzj123
2010-02-28 11:50:46
String s = new String("xyz");
创建了几个String Object?
...全文
404
36
打赏
收藏
String的一个小问题
String s = new String("xyz"); 创建了几个String Object?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lliiqiang
2010-03-05
打赏
举报
回复
创建了两个对象和一个引用.
引用s存放的是对象的地址而不是数值
豆虫
2010-03-04
打赏
举报
回复
引用 33 楼 bao110908 的回复:
这是 CSDN Java 版的周经帖!
的确看过N遍了。。。
孤独剑客
2010-03-03
打赏
举报
回复
晕菜, 又是这个, 别来了行不
两个, ThinkingInJava中的
east_java
2010-03-03
打赏
举报
回复
3个,构造函数中的一个,new一个,引用一个
http://www.java1995.cn/wiki/topic/2
zqfddqr
2010-03-03
打赏
举报
回复
。。。这种问题可以直接百度的 问过好多次了。。。
wang461137703
2010-03-03
打赏
举报
回复
两个,一个是放在池里,另一个放在了堆里。。。。。。
cwjieNo1
2010-03-03
打赏
举报
回复
仔细观察了一下,这个问题回帖的,都是等级不是很高的人·
火龙果被占用了
2010-03-03
打赏
举报
回复
我说产生 10 个对象,你难道把内存扒腾出来数数看不成?
火龙果被占用了
2010-03-03
打赏
举报
回复
这是 CSDN Java 版的周经帖!
xulei1987518
2010-03-02
打赏
举报
回复
顶,应该是2个吧……
swing_false
2010-03-02
打赏
举报
回复
2个吧 应该 第一是放在data区的 第二个放在堆空间中的
himlys
2010-03-02
打赏
举报
回复
String Object 就一个在字符串池里,对象和应该是3个
xxpp688
2010-03-01
打赏
举报
回复
String s = new String ("xyz");
是吧!楼主考我那:
这个问题要分情况讨论
首先要看存在不存在“xyz”(或者有无“xyz”)
一:
如果不存在“xyz”则创建了一个“xyz”对象;
二:
如果存在“xyz”那就是两个;
一个是:你创建的字符串“xyz”
一个是:字符串指向S的引用
liguang168
2010-03-01
打赏
举报
回复
这个问题争了几十年了,还有这么多人不知道。
有说1,2,3个的。
到底几个?自己慢慢理解,我觉得明白就行了,JAVA有一个字符串池。
字符串池有的话,不会重复生成,但new是肯定会生成一个新的对象。
所以String a = "abc";
String b = "abc";
String c = new String("abc");
a == b (true);
a == c (false);
a,本身也应该是一个对象。
OK.
狂想者
2010-03-01
打赏
举报
回复
学习一下,需要学习的太多了。。。。
哈特中尉
2010-03-01
打赏
举报
回复
String s = new String("xyz");
创建了3个对象:
(1)"xyz"
(2)new String("xyz")
(3)String s
解析:(1)创建对象"xyz"(2)再将该对象作为参数,创建new String("xyz")(3)创建对象s
最后:s指向new String("xyz")
musiclee
2010-03-01
打赏
举报
回复
我靠 还讨论这问题呢。。。。。。。
ahut12825
2010-03-01
打赏
举报
回复
3个,构造函数以个,new一个,引用一个
cheung1987
2010-03-01
打赏
举报
回复
mark,以前也看到这个问题有人发了,一直都很火
xueye052
2010-03-01
打赏
举报
回复
我是这样觉得的 两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
加载更多回复(14)
sizeof(
string
)---容器
string
类型的大小
刚看到《程序员面试宝典》中有
一个
表达式说sizeof(
string
)大小是4,感到很是诧异,因为
string
容器的大小和
string
的实现有关,
string
类不是内置数据类型,而是
一个
模版类,所以它的大小和类的实现有关,具体我做了以下测试: //source cout<
string) <
C++
string
使用介绍(非常全面,详细)
目录
string
的初始化1.常见初始化方式
string
对象的操作1.用cin获取键盘输入的值2.用getline读取一整行4.比较
string
的大小5.两个
string
对象相加5.1 两个
string
对象相加5.2
string
对象加上
一个
字符(或字符串)字面值如何获取和处理
string
中的每个字符1.使用下标运算符[]2.使用迭代器3.使用基于范围的for语句构造
string
对象的其他方法1拷贝数组2.拷贝
string
对象3.使用substr成员函数
string
对象的insert()迭代器insert下标
关于字符串指针初始化std::
string
的
一个
小
问题
关于字符串指针初始化std::
string
的
一个
小
问题
C#
string
与
String
区别
C#是区分大小写的,但是我却发现C#中同时存在
String
与
string
,于是我很困惑,于是我上网搜索了一下,于是我了解了一些小知识。 MSDN中对
string
的说明:
string
is an alias for
String
in the .NET Framework。
string
是
String
的别名而已,
string
是c#中的类,
String
是Framework的类,C#
string
映射为 Framework的
String
。如果用
string
,编译器会把它编译成
String
,所以如果直接用
String
类型长度限制
问题
对于字符串可以承受的最大长度,要分为2个阶段,
一个
是编译时期(也就是你代码定义了
一个
String
字符串,
String
s= “xiaofang”),
一个
是运行时期(指在程序运行过程中) 编译期
String
字符串的限制 我们都知道JVM里面是包含常量池的,(是一种对字符串的性能优化,不用反复创建新的字符串了)当我们使用字符串字面量直接定义
String
的时候,是会把字符串在常量池中存储一份的。常量池中的每一项常量都是
一个
表,都有自己对应的类型。Java中的UTF-8编码的Unicode字符串在常量池中以CONS
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章