String&StringBuffer&StringBuilder区别
String
public class LianXi2 {
public static void main(String[] args) {
String str = "Hello"; //引用str指向对象"Hello"
str = str + " World"; //引用str指向对象str + " World" (str + " World"是另外一个对象)
System.out.println("str=" + str);
}
}
stringbuffer:线程安全
stringbuilder:线程不安全(性能最高)
2个类的方法没什么区别
String&Stringbuffer&Stringbuilder性能测试
package cn.com.string; /**
* StringBuliderTest
*
* @描述:StringBulider性能演示
*/
public class StringBuliderTest {
// 定义2个常量
private static final String base = "abc";
private static final int count = 2000000; /**
* 测试String性能方法
*/
public static void stringTest() {
long begin, end;
begin = System.currentTimeMillis(); // 开始时间
String test = new String(base);
for (int i = 0; i < count / 100; i++) {
test = test + "add";
}
end = System.currentTimeMillis(); // 结束时间
System.out.println("测试string所用时间:" + (end - begin));
} /**
* 测试stringbuffer性能方法
*/
public static void stringbufferTest() {
long begin, end;
begin = System.currentTimeMillis(); // 开始时间
StringBuffer test = new StringBuffer(base);
for (int i = 0; i < count; i++) {
test = test.append("add");
}
end = System.currentTimeMillis(); // 结束时间
System.out.println("测试StringBuffer所用时间:" + (end - begin));
} /**
* 测试stringbuilder性能方法
*/
public static void stringbuilderTest() {
long begin, end;
begin = System.currentTimeMillis(); // 开始时间
StringBuilder test = new StringBuilder(base);
for (int i = 0; i < count; i++) {
test = test.append("add");
}
end = System.currentTimeMillis(); // 结束时间
System.out.println("测试stringbuilder所用时间:" + (end - begin));
} /**
* mai方法
*
* @param args
*/
public static void main(String[] args) {
stringTest();
stringbufferTest();
stringbuilderTest();
} /**输出结果:
测试string所用时间:1114
测试StringBuffer所用时间:140
测试stringbuilder所用时间:63
*/
}
String&StringBuffer&StringBuilder区别的更多相关文章
- 转:String StringBuffer StringBuilder区别
转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...
- String,StringBuffer,StringBuilder区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- Java中String/StringBuffer/StringBuilder区别(转)
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuild ...
- String StringBuffer StringBuilder区别与联系
java.lang.String.java.lang.StringBuffer.java.lang.StringBuilder都是字符串类型,是Java中用于处理字符串常用的三个类.它们主要有以下区别 ...
- Java学习之String StringBuffer StringBuilder区别
1.String:对象长度是不可变的,是线程安全. 2.StringBuffer:对象长度是可变的,是线程安全. 3.StringBuilder:对象长度是可变,不是线程安全.
- String,StringBuffer,StringBuilder区别(笔记)
String类被final修饰,创建的对象为不可变对象,属于字符串常量. 而StringBuffer与StringBuilder创建的属于字符串常量. StringBuffer的方法大多用了Synch ...
- java中string , StringBuffer , StringBuilder 区别
1.String String变量的值不能改变,如果要改变String变量的值,虚拟机首先会遍历方法区中的字符串常量,如果存在需要的值,则虚拟机直接把此常量值的地址分配给String变量,如果不存在这 ...
- String StringBuffer stringbuilder 区别
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 字符串类 ,长度不可变. 字符串缓存器类, 长度可变, 线程安全, 字符串构造器类,长度 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
随机推荐
- poj1082 Calendar Game (博弈)
题意是:Adam和Eve两人做游戏,开始给出一个日期,截止日期是2011.11.4,游戏规则如下: 每个人只能将天数增加一天或者将月份增加一天.如果下个月没有这一天,那么只能增加天数. 游戏胜利定义为 ...
- (转)linux 中使用ls指定输出时间格式
linux 中使用ls指定输出时间格式 原文:http://blog.csdn.net/chaofanwei/article/details/13018753 ls -l --time-style=x ...
- 用命令行的方式将本地项目上传到git
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...
- Linux Mint下的conky配置
最近闲来无事,想把自己的Linux Mint弄的再炫酷点,在桌面上显示一些信息,因为我已经装了Cairo-dock,现在就差这个了,下面简单说下整个流程,首先你得安装conky, sudo apt-g ...
- 生产消费者模式与python+redis实例运用(基础篇)
根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...
- agc016C - +/- Rectangle(构造 智商题)
题意 题目链接 Sol 我的思路:直接按样例一的方法构造,若$h \times w$完全被$N \times M$包含显然无解 emm,wa了一发之后发现有反例:1 4 1 3 我的会输出[1 1 - ...
- html 02-认识html
1. HTML 初识 HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言. HTML 不是一种编程语言,而是一种标记语言 (markup ...
- 使用HTML5 canvas做地图(1)基础知识
之前一直想使用HTML5技术全新做一套地图API,可是苦于时间和精力,迟迟未有行动.后来下定决心,利用下班和周末做出一个大体框架出来,现在和网友分享一下自己的整体的一个思路和想法.欢迎大家提出宝贵建议 ...
- Java有关List的stream基本操作
参考博客: https://www.jianshu.com/p/9fe8632d0bc2 Stream简介 Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有I ...
- Mysql update后insert造成死锁原因分析及解决
系统中出现死锁的日志如下: ) TRANSACTION: , ACTIVE sec inserting mysql tables , locked LOCK WAIT lock struct(s), ...