关于Java String,你知道多少?
2010-11-16 23:15
204 查看
一.String s=new String("abc");//产生几个对象 答案:2个。heap中一个,String pool中一个。 二.String s="abc"; String s1=new String("abc");//该条语句却只产生了一个String对象。 三.String s1=new String("abc"); String s2="abc"; String s3=new String("abc"); String s4="abc"; 问题:s1==s2?//false s1==s3?//flase s2==s3?//false s2==s4?//true 4.String hello="hello"; String hel="hel"; String lo="lo"; System.out.println(hello=="hel"+"lo");//true (在编译阶段就能确定) System.out.println(hello=="hel"+lo);//false (在运行时才能确定) 5.String s = "a" + "b" + "c";产生几个对象? 很多人会认为是3,4,5个。但实际上仅产生一个对象。在String pool中的"abc"。因为s的值在编译阶段就能确定。 总结:java中,String通常分配在两个地方,一个地方是内存堆中,一个是Stirng pool(因为String的通用性而设计的)。弄清楚这两个方面,问题即迎刃而解。 |
相关文章推荐
- 关于Java IO流 你知道多少
- 关于符号扩展多少你自己知道
- java—关于String
- [原]深入 JAVA里面关于byte数组和String之间的转换问题
- [基础]关于Java强制转换中无法强制转换String的思考
- [转]关于五险一金,你知道多少?
- 关于符号位扩展你又知道多少
- 关于UITableView,你知道多少
- 你应该知道的10件关于Java 6的事情
- java的clone你知道多少?
- 【面向对象语言系列】关于Java设计模式,你需要知道的事
- JAVA中关于String的若干问题
- Java 中关于String 对象的空对象(null), 空值(""),空格(" ")
- 关于Java字符串(String)10个最常见问题
- 关于 Java 9 你所需要知道的一切
- 关于Java中String内存的学习
- java如何判断一个String类型数据由多少字节组成?
- 你真的知道Java中boolean类型占用多少个字节吗?
- 【关于java.lang.String的深层知识】
- Java中关于String类型的10个问题