Java: String vs Stringbuffer
来源:互联网 发布:淘宝会员哪几种 编辑:程序博客网 时间:2024/05/11 17:15
public class FileList { public static void main(String[] args){ String a = new String("abc"); String b = new String("abc"); System.out.println(a.equals(b)); StringBuffer c = new StringBuffer("bc"); StringBuffer d = new StringBuffer("bc"); System.out.println(c.equals(d)); }}
第1种:
String a=”abc”;
String b=”abc”;
System.out.print(a==b);
结果:true
原因:编译时,这两个”abc”被认为是同一个对象保存到了常量池中;运行时JVM则认为这两个变量赋的是同一个对象,所以返回true。
第2种:
String a=new String(“abc”);
String b=new String(“abc”);
System.out.print(a==b);
结果:false
原因:用构造器创建的对象,是不会被放入常理池中的,也很明显这完全是两个对象,只是内容相同罢了,结果当然为false了。用equals()或者System.out.print(a.intern()==b.intern());就返回true了。
第3种
String a=”abc”;
String b=new String(“abc”);
System.out.print(a==b);
结果:false
原因:同上
第4种
String a=”abcdef”;
System.out.print(a==”abcdef”);
结果:true
原因:运行出现的字符串常量,若是在常量池中出现过,则JVM会认为同一个对象,以节省内存开销,所以这两个字符串会被认为是同一个对象。
第5种
String a=”abcdef”;
String b=”“;
String c=a+b;
System.out.print(c==”abcdef”);
结果:false
原因:编译时,先将”abcedf”放在常量池中,而c的值则是在运行时在堆里创建的。所以为false。
- Java: String vs Stringbuffer
- String vs StringBuffer vs StringBuilder in Java
- Java - String vs StringBuffer vs StringBuilder
- Java - String vs StringBuffer vs StringBuilder in Java
- Java String vs StringBuilder vs StringBuffer Concatenation Performance Micro Benchmark
- String(+) vs StringBuffer(append)
- StringBuffer VS String
- String VS StringBuffer
- String(+) vs StringBuffer(append)
- String VS StringBuffer VS StringBuilder
- String & StringBuffer In JAVA
- java字符串String&StringBuffer
- Java String,StringBuilder,StringBuffer
- JAVA String StringBuffer Stringbuilder
- Java String\StringBuffer\Stringbuilder
- java--String,StringBuffer
- Java String StringBuilder StringBuffer
- Java String StringBuilder StringBuffer
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- JSON、JAVA互转与将页面中改变的数据转为json格式
- gcc/g++常用命令
- MySQL中unique列上插入重复值解决办法
- springmvc 静态资源过滤
- Java: String vs Stringbuffer
- HTML实现“摇一摇”效果
- Mediarecoder得到aac(通过LocalSocket)
- stl hash_map详解
- [Lua]Lua中的小技巧
- 优先队列用法
- 友盟分享QQ空间分享出现打开QQ空间失败
- LeetCode 20.Valid Parentheses
- 在APACHE服务器上的访问方式上去除index.php