java面试题good and gbc
2014-04-02 17:33
435 查看
面试中碰到一个题
根据映像 回来上网查到 然后运行 结果输入good and gbc 和我预想的不同
觉得原因是 string源码里写的 Multiple strings can share the same char[] because strings are immutable
String是不可变的
请教了大神得知 change()方法里面 str 的引用只是指向了 "test ok" 这个字符串
并没有改变"good"这个字符串
就是说 :
字符串 "good"是一个不变的字符串 ;
change()里面的str是另一个复制的字符串
当执行change(String str )方法的时候 在change内部重新创建了"text ok字符串"
然后改变了 str的指向 并且只能在change方法内可用 并没有改变原有的"good"字符串
所以输出了 good and gbc
如果我总结的不对 希望大神指出一下
祝大家编程每日精进
public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String[] args) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out.print(ex.str + "and"); System.out.print(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'g'; } }
根据映像 回来上网查到 然后运行 结果输入good and gbc 和我预想的不同
觉得原因是 string源码里写的 Multiple strings can share the same char[] because strings are immutable
String是不可变的
请教了大神得知 change()方法里面 str 的引用只是指向了 "test ok" 这个字符串
并没有改变"good"这个字符串
就是说 :
字符串 "good"是一个不变的字符串 ;
change()里面的str是另一个复制的字符串
当执行change(String str )方法的时候 在change内部重新创建了"text ok字符串"
然后改变了 str的指向 并且只能在change方法内可用 并没有改变原有的"good"字符串
所以输出了 good and gbc
如果我总结的不对 希望大神指出一下
祝大家编程每日精进
相关文章推荐
- Java面试题之为什么输出结果会是 good and gbc?
- 面试题收集——Java基础部分
- JAVA面试题:equals()方法和== 区别
- 115个Java面试题和答案——终极列表(下)
- Java面试题之:JDK和JRE的区别?
- Java面试题和答案
- 【面试题】在二元树中找出和为某一值的所有路径——Java实现
- java面试题之 城市之间路段的问题
- JAVA的面试题:0.3*3=0.899999999 , 不等于0.9
- Java面试题(3)
- 张孝祥正在整理Java就业面试题大全
- 面试题——整除问题Java实现
- 剑指Offer:面试题23——从上往下打印二叉树(java实现)
- java 面试题03之《乘法口诀》
- JAVA面试题及解答
- 软件开发面试题(JAVA)1
- Java面试题 - 超过int大小的数字相加操作
- JAVA面试题:69道Spring面试题和答案
- 各大公司Java后端开发面试题总结
- 115个Java面试题和答案——终极列表(上)