很基础的一个有关问题,面试了十几个人既然没有一个做对
很基础的一个问题,面试了十几个人既然没有一个做对!
很基础的一个问题,面试了十几个人既然没有一个做对!
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
估计这个错的更多。。。
两个引用指向同一个地址
打印结果应该是: 00
00
估计这个错的更多。。。
弱弱的问下,这个和数组的为什么不一样呢,新手学习下
估计这个错的更多。。。
在轻松的环境下,人思考得越周全...
面试的时候,精神状态会差些吧!
字符串不可变,如果从内存角度思考,会简单很多...
看了这个解释后,就知道楼主的问题和憨豆先生问题的区别了!
对java数组的内存分布不是特别了解,
st1,st2分配在栈中,他们都是指向那个对象数组的头部?还有,"aa","bb"等是在常量区,st2[0]指向"aa",st2[1]指向"bb",那么st2[0],st2[1]这些变量是分配在哪里的?
不知楼主能否详细解释下?
估计这个错的更多。。。
在轻松的环境下,人思考得越周全...
面试的时候,精神状态会差些吧!
字符串不可变,如果从内存角度思考,会简单很多...
这和可变不可变完全没有关系
结果一样
很基础的一个问题,面试了十几个人既然没有一个做对!
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
31 楼
yehengxy
2011-03-18
肯定是00,对象引用的问题嘛 是吧
32 楼
Enjoy_show
2011-03-18
LZ拿来面试难倒N个人的问题!到JE这里变得很是简单!!!!!!!还是JE上面高手多啊!
33 楼
wu520615
2011-03-19
新手学习了,刚还找朋友给我解释了一下,看来书本还是要翻得仔细些!
34 楼
JesseYu
2011-03-23
00 00我也做错了。。。悲剧啊。
35 楼
lxfstyle
2011-03-24
这个难吗。。。
36 楼
thzthbthy
2011-03-25
会混论坛的有几个不会先运行一下,然后回复?
37 楼
jobar
2011-04-06
String st1 = "aa"; String st2 = st1; st2 = "00"; System.out.println(st1); System.out.println(st2);
估计这个错的更多。。。
38 楼
weng
2011-04-07
don888g 写道
很基础的一个问题,面试了十几个人既然没有一个做对!
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
两个引用指向同一个地址
打印结果应该是: 00
00
39 楼
zhonghuazhi
2011-04-07
简单类型的话 两个值就不一样
非简单类型的话 两个值一样
非简单类型的话 两个值一样
40 楼
wstxdz1023
2011-04-11
jobar 写道
String st1 = "aa"; String st2 = st1; st2 = "00"; System.out.println(st1); System.out.println(st2);
估计这个错的更多。。。
弱弱的问下,这个和数组的为什么不一样呢,新手学习下
41 楼
sbaiss
2011-04-11
我成功的做错了
42 楼
raycode
2011-04-11
jobar 写道
String st1 = "aa"; String st2 = st1; st2 = "00"; System.out.println(st1); System.out.println(st2);
估计这个错的更多。。。
在轻松的环境下,人思考得越周全...
面试的时候,精神状态会差些吧!
字符串不可变,如果从内存角度思考,会简单很多...
43 楼
zhouNN_mJ
2011-05-16
zhonghuazhi 写道
简单类型的话 两个值就不一样
非简单类型的话 两个值一样
非简单类型的话 两个值一样
看了这个解释后,就知道楼主的问题和憨豆先生问题的区别了!
44 楼
hoolale
2011-05-24
st2[0]="00",本身就错误。没有必要去讨论其他。
45 楼
hoolale
2011-05-24
楼主的题目就是空中楼阁,不解释。
46 楼
KevinGarnett
2011-06-02
don888g 写道
很基础的一个问题,面试了十几个人既然没有一个做对!
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
String st1[]={"aa","bb","cc","dd","ee","ff"};
String st2[]=st1;
st2[0]="00";
System.out.println(st1[0]);
System.out.println(st2[0]);
打印结果:
对java数组的内存分布不是特别了解,
st1,st2分配在栈中,他们都是指向那个对象数组的头部?还有,"aa","bb"等是在常量区,st2[0]指向"aa",st2[1]指向"bb",那么st2[0],st2[1]这些变量是分配在哪里的?
不知楼主能否详细解释下?
47 楼
gtssgtss
2011-06-02
raycode 写道
jobar 写道
String st1 = "aa"; String st2 = st1; st2 = "00"; System.out.println(st1); System.out.println(st2);
估计这个错的更多。。。
在轻松的环境下,人思考得越周全...
面试的时候,精神状态会差些吧!
字符串不可变,如果从内存角度思考,会简单很多...
这和可变不可变完全没有关系
StringBuilder st1 = new StringBuilder("aa"); StringBuilder st2 = st1; st2 = new StringBuilder("00"); System.out.println(st1); System.out.println(st2);
结果一样
48 楼
ydwcn
2011-06-03
这是面招的什么岗位啊。实习生吧?
49 楼
glc1237
2011-06-14
<div class="quote_title">raycode 写道</div>
<div class="quote_div">
<div class="quote_title">jobar 写道</div>
<div class="quote_div">
<pre name="code" class="java">String st1 = "aa";
String st2 = st1;
st2 = "00";
System.out.println(st1);
System.out.println(st2);</pre>
<br>估计这个错的更多。。。</div>
<br><br>在轻松的环境下,人思考得越周全... <br><br>面试的时候,精神状态会差些吧! <br><br>字符串不可变,如果从内存角度思考,会简单很多... <br>
</div>
<p> </p>
<p> 这个是考察 对象创建和 LZ的 一起就是也考察 值传递了吧 </p>
<p>我的理解就是 LZ给的里面 创建了一个数组对象 str1,str2 都是指向 数据的引用 </p>
<p>在上面 有创建了 一个新的对象 s2 指向 新的对象 s1 还是指向原来的对象</p>
<div class="quote_div">
<div class="quote_title">jobar 写道</div>
<div class="quote_div">
<pre name="code" class="java">String st1 = "aa";
String st2 = st1;
st2 = "00";
System.out.println(st1);
System.out.println(st2);</pre>
<br>估计这个错的更多。。。</div>
<br><br>在轻松的环境下,人思考得越周全... <br><br>面试的时候,精神状态会差些吧! <br><br>字符串不可变,如果从内存角度思考,会简单很多... <br>
</div>
<p> </p>
<p> 这个是考察 对象创建和 LZ的 一起就是也考察 值传递了吧 </p>
<p>我的理解就是 LZ给的里面 创建了一个数组对象 str1,str2 都是指向 数据的引用 </p>
<p>在上面 有创建了 一个新的对象 s2 指向 新的对象 s1 还是指向原来的对象</p>
50 楼
benbenxiongyuan
2011-06-23
没做对的话,基础还是不牢固。
如果对java虚拟机内存结果稍了解的话,应该能猜对。
堆和常量池。常量区值相同的只有一份实例。堆中每次new新生成不同的实例。
如果对java虚拟机内存结果稍了解的话,应该能猜对。
堆和常量池。常量区值相同的只有一份实例。堆中每次new新生成不同的实例。