学习Java字符串笔试题之二
2008-01-28 22:40 和尚释然 阅读(503) 评论(0) 编辑 收藏 举报
public class StringTest2 {
public static void main(String[] args) {
String hello = "hello";
String hel = "hel";
String lo = "lo";
System.out.println(hello == "hel" + "lo");
//在"+"两边都是常量字符串,则将两个字符串合并并且在String Pool中查找"hello"
//并返回在String Pool中的内存地址正好也是hello变量的内存地址,所以第一句代码会输出true。
System.out.println(hello == "hel" + lo);
//如果在"+"两边有一边是引用类型变量,Java会将合并成一个字符串并且在堆栈中创建一个
//新的对象并且返回内存地址,所以这句代码是输出false。
}
}
public static void main(String[] args) {
String hello = "hello";
String hel = "hel";
String lo = "lo";
System.out.println(hello == "hel" + "lo");
//在"+"两边都是常量字符串,则将两个字符串合并并且在String Pool中查找"hello"
//并返回在String Pool中的内存地址正好也是hello变量的内存地址,所以第一句代码会输出true。
System.out.println(hello == "hel" + lo);
//如果在"+"两边有一边是引用类型变量,Java会将合并成一个字符串并且在堆栈中创建一个
//新的对象并且返回内存地址,所以这句代码是输出false。
}
}
作者:顾恩礼
出处:http://www.cnblogs.com/guenli/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。