该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-25
pouyang 写道 String s = new String("b"+"c"); 在运行时涉及几个String实例? 应该是2个,常量池里面是“bc”,堆里面是有个new出来的,这里编译器会把“b”+"c"优化成“bc”的 |
|
返回顶楼 | |
发表时间:2011-04-29
最后修改:2011-04-29
面试大唐电信的时候,出了这么一道
String s = new String("hello")// 创建了几个String object对象 当时直接没想,就填了两个。呵呵。学习了。 |
|
返回顶楼 | |
发表时间:2011-06-04
关键是 这个问题实际应用中 有什么地方开发必须要深究这个地方?
|
|
返回顶楼 | |
发表时间:2011-06-04
takingoff 写道 关键是 这个问题实际应用中 有什么地方开发必须要深究这个地方? 我想说的不就是这个么…既然许多职位不需要在这种问题上纠结,最初就不应该在面试的时候问这种问题。 |
|
返回顶楼 | |
发表时间:2011-06-04
想不到这个问题扯这么久
|
|
返回顶楼 | |
发表时间:2011-06-27
最后修改:2011-06-27
刚才我也看到一个宝典上有这么一道题,就看了看!然后看到LZ这么激情洋溢的描述果然是被雷到了!嗨!看来还是要潜心研究啊!话不多说,言归正传!
有人回答是这样的: 引用 两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
两个情况的就不用说了,LZ说的很清楚了!可是一个呢? 如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿,甚么叫以前就用过‘xyz’,这句话是甚么意思?能不能举个例子呢?说清楚点!最好能对比String s = new String("xyz")这个! |
|
返回顶楼 | |
发表时间:2011-09-22
高手呀!!!!!!!!!!!!
|
|
返回顶楼 | |