社区
Java SE
帖子详情
String s=new String("avc")共生成几个对象?
tomjie1981
2007-11-26 10:35:34
如题!
...全文
1305
111
打赏
收藏
String s=new String("avc")共生成几个对象?
如题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
111 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
codolio
2011-07-19
打赏
举报
回复
[Quote=引用 19 楼 dracularking 的回复:]
新生成和存在有区别
存在两个,有一个肯定是新生成的
"avc"
和
new String("avc")
代表同一字符序列
new String("avc")是"avc"的拷贝副本
[/Quote]
恩,同时需要注意的是对字符串常量的限定。
haobaoipv6
2011-07-19
打赏
举报
回复
晕,还顶,这个问题就像看一个孕妇,一个人还是两个人?
JavaMan_KA
2011-07-19
打赏
举报
回复
2 个对象,一个"avc",一个是"avc"的引用
三千大千世界
2011-07-19
打赏
举报
回复
1个或2个
取决于在new String(“avc”)之前,在java的String常量池里有没有这个对象,没有就先创建一个对象,然后再来一个对这个对象的引用,有 的话就直接来个引用
lost_guy_in_scut
2011-07-19
打赏
举报
回复
顶。那么多人回答。蛋疼的人类啊。
malihom
2011-07-18
打赏
举报
回复
[Quote=引用 61 楼 heartraid86 的回复:]
从头看到尾,没几个人回答的非常的准确。主要错误说法有这么几类:
(1) “认为常量池中有对象”--错误,对象(或则说对象中的实例变量的存储区域)只能在堆中,常量池解析之后会存储指向堆中对象的引用。
(2) "认为栈有对象"--错误,JVM管理的内存有一块区域叫做Java栈,是为了方法运行的时候开辟必要的局部数据区和操作数栈的。这个里面存储的也是指向堆中的对象引用。不可能有对象本身。
(……
[/Quote]
从头看到尾,几乎所有的人都没有正确的解释,看到这个眼前一亮,真希望大伙能够认真看一下,不要觉得是就是了,竟然栈都有内存了,无语了……
「已注销」
2011-07-18
打赏
举报
回复
18楼的完全正确。
东部小飞侠
2011-07-18
打赏
举报
回复
1个或者2个 这个问题百度上多了去了
meran
2011-07-18
打赏
举报
回复
[Quote=引用 61 楼 heartraid86 的回复:]
从头看到尾,没几个人回答的非常的准确。主要错误说法有这么几类:
(1) “认为常量池中有对象”--错误,对象(或则说对象中的实例变量的存储区域)只能在堆中,常量池解析之后会存储指向堆中对象的引用。
(2) "认为栈有对象"--错误,JVM管理的内存有一块区域叫做Java栈,是为了方法运行的时候开辟必要的局部数据区和操作数栈的。这个里面存储的也是指向堆中的对象引用。不可能有对象本身。
(……
[/Quote]
正解
pejayshine
2010-06-30
打赏
举报
回复
[Quote=引用 12 楼 kangyanboy 的回复:]
2 个,一个"avc",一个指向"avc"的引用!
[/Quote]
我认为一个是 在常量池中,一个在堆里, 引用只是在栈上分了空间的变量,不是对象
xtm1206571089
2010-06-29
打赏
举报
回复
一个堆中 一个栈中
fuerxi
2010-06-29
打赏
举报
回复
2 个,一个"avc",一个指向"avc"的引用!
lee80705041
2010-06-29
打赏
举报
回复
61楼的回答很精确啊,
一个是java虚拟机对字符串"avc"创建了一个inner对象
还有就是在堆中创建了一个inner对象的副本new String("avc")对象
s 只是一个引用 不是一个对象
lee80705041
2010-06-29
打赏
举报
回复
请问有100楼吗?
lovepu
2010-06-28
打赏
举报
回复
2个对象!
jinianjun
2010-06-27
打赏
举报
回复
我晕,应该是两个
fly2749
2010-06-27
打赏
举报
回复
[Quote=引用 22 楼 haiyingyih 的回复:]
我是新手,刚看一楼的回答,我觉得我肯定知道是2个....但是看到最后,我发现我不知道到底几个了...!
[/Quote]
呵呵
郭梧悠
2010-06-27
打赏
举报
回复
楼主晕了
lgh1117
2010-06-27
打赏
举报
回复
上面的都说的很对,就是两个
sequanyining
2010-06-27
打赏
举报
回复
两个 s在堆区 avc在字符串池 s是指向avc的引用
加载更多回复(91)
字符串常量池(
String
Table)
1,
String
的基本特性
String
:字符串,使用一对""引起来表示
String
a = "
avc
";//字面量定义
String
b =
new
String
("
avc
");
String
声明为final的,不可被继承
String
实现了Serializable接口:表示字符串是支持序列化的。
String
实现了Comparable接口:表示
string
可以比较大小
String
在jdk8及以前内部定义了final char[] value用于存储字符串数据。JDK9时改为by
android硬编码h264-MediaCodec
http://www.360doc.com/content/14/0119/09/8122810_346343953.shtml 1/2 FileInputStream in =
new
FileInputStream("/sdcard/sample.ts");
String
mimeType = "video/
avc
"; MediaCodec decoder = MediaCodec.cr
C/C++错题集
1、关于以下代码,哪个说法是正确的? myClass::foo(){ delete this; } .. void func(){ myClass *a =
new
myClass(); a->foo(); } 它会引起栈溢出 都不正确 它不能编译 它会引起段错误 答案:都不正确。 它能编译,在语法上没问题。 它不会引起段错误,因为没有看到越界访问的代码。 它不会引...
Anroid音视频开发
先简要说明下Android支持的视频格式,如下:由于硬件的不同,不同的手机支持的编解码方式有些不一样,在T-Mobile G1实际设备中增加了对WMA,WMV,H.264
AVC
格式解码的支持。Android支持的音/视频编码方式仅包括:AMR-NB,H.263,输出的视频格式也只*.3gp或者*.mp4,这点在以后的开发中需要注意。对Android的编解码有了一些了解后,我们再去研究下如何在A...
音频的回放流程-播放器的创建及数据准备(提取,解码)
这篇文章的目的是疏通从应用端到服务端到本地库之间的播放链路是怎么打通的,其中涉及的具体细节,比如AMessage,ALooper机制,codec,renderer,AduioTrack和AudioFlinger间buffer的
共
享等,没有详细分析。根据mediaplayer的状态机,一个音频的回放通常是从idle经过setDataSource()到Initialized状态,然后通过prepare...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章