[转]通过六个题目彻底掌握String
Java中String类由于其特殊性(不变类),几乎是笔试面试中的必考题,当然有些题目其实没啥意思,不过关键是要通过题目掌握原理性的东西。下面六道题目,如果您全部做对了,且明白其所以然,那么Java中的关于String的笔试面试题应该难不到你了。也许您觉得我说的有点过了,然而彻底明白这些题目,对理解String类还是很有好处的。
写出下面各题的打印输出的结果:
2345String x = "abc";String y = new String("abcd");?现在来分析一下内存的分配情况。如图:
?
可以看出,x与y存在栈中,它们保存了相应对象的引用。第一条语句没有在堆中分配内存,而是将“abc”保存在常量池中。对于第二条语句,同样会在常量池中有一个“abcd”的字符串,当new时,会拷贝一份该字符串存放到堆中,于是y指向了堆中的那个“abcd”字符串。不知道polaris有没有讲明白。如果您明白了,那么做前面那六道题就没什么问题了。?
![[转]透过六个题目彻底掌握String](http://img.reader8.net/uploadfile/jiaocheng/20140140/2741/2014012721412428868.jpg)