String、StringBuffer、StringBuilder之间的区别 简明介绍

主要区别:① String会消耗更多的内存空间,加重JVM的负担;②StringBuffer和StringBuilder在声明和操作时只会占用一个空间节约内存空间;③StringBuffer和StringBuilder基本是相同的,但是StringBuffer是线程安全的。

//String先开辟一个 内存空间 存储abc

String str="abc";
//下面 再开辟一个空间 存储def,上一个空间abc被废弃,然后被JVM回收
str="def";
//下面又开辟一个空间 存储 加法值,前面的空间被废弃 回收
str+="ghk";
//如果频繁修改,使用StringBuilder节约空间
//StringBuilder:只开辟一个空间,节约内存空间
StringBuilder sBuilder=new StringBuilder("ABC");
sBuilder.append("DEF");
sBuilder.delete(3,sBuilder.length());
sBuilder.insert(3, "DDD");
System.out.println(sBuilder.toString());
//StringBuffer多线程中 是线程安全的;
//StringBuilder()是线程不安全的,在多线程中需要加锁

猜你喜欢

转载自blog.csdn.net/weixin_42350212/article/details/81060382
今日推荐