首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

字符串的一些有关问题

2012-12-19 
字符串的一些问题A:?String str1 java?String str2 java?System.out.print(str1str2)?输出:t

字符串的一些问题

A:?
String str1 = "java";?
String str2 = "java";?
System.out.print(str1==str2);?
输出:true;?
关键点:==比较引用,equals比较内容,JVM的常量池可以节省内存开销。?
B:?
String str1 = new String("java");?
String str2 = new String("java");?
System.out.print(str1==str2);?
输出:false;?
关键点:A中的方式是在常量池中创建“java”对象,但是通过new,JVM会在堆中分配空间。?
C:?
String str1 = "java";?
String str2 = "blog";?
String s = str1+str2;?
System.out.print(s=="javablog");?
输出:false;?
关键点:字符串常量池是编译时创建,String s=str1+str2运行时才能知道;即str1+str2是在堆里创建的,s引用当然不可能指向字符串常量池里的对象。?
D:?
String s1 = "java";?
String s2 = new String("java");?
System.out.print(s1.intern()==s2.intern());?
输出:true;?
关键点:intern方法~参考jdk文档;通过它可以比较字符串的内容?
E:?
String str1 = "java";?
String str2 = new String("java");?
System.out.print(str1.equals(str2));?
无论在常量池还是堆中的对象,用equals()方法比较的就是内容

热点排行