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 ...
随机推荐
- List<Object> 使用Linq
List<Asset> bdList = allAsset.Where(m => m.Owner.Depts == view.DeptName).ToList(); var quer ...
- python大战机器学习——模型评估、选择与验证
1.损失函数和风险函数 (1)损失函数:常见的有 0-1损失函数 绝对损失函数 平方损失函数 对数损失函数 (2)风险函数:损失函数的期望 经验风险:模型在数据集T上的平均损失 根据大 ...
- springboot 参数校验详解
https://www.jianshu.com/p/89a675b7c900 在日常开发写rest接口时,接口参数校验这一部分是必须的,但是如果全部用代码去做,显得十分麻烦,spring也提供了这部分 ...
- JS——制作简单的网页计算器
用JS做了一个简易的网页计算器 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- python3+Appium自动化05-xpath定位
概念 xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相关属性来定位,但是绝对路径xpath执行效率比较低(特别是元素路径比较深的时候),一般使用比较少.通常使用xpath相对路径和属性 ...
- java编程如何实现2017-01-16 22:28:26.0这样的时间数据,转换成2017:01:16:22:28:26这样的时间数据
不多说,直接上干货! timereplace.java package zhouls.bigdata.DataFeatureSelection.util; /* * 这个程序,是用来做补充的 */ p ...
- docker~aspnetcore2.0镜像安装软件的加速器
一般对于安装软件加速时,我们大多数会选择阿里云,而对于aspnetcore2.0这个进项来说,由于使用的是Debian操作系统,所有我们要找到它对应的mirror列表,下面是我整理的一个sources ...
- mysql5.5.28.tar.gz编译安装操作笔记
1.yum安装依赖包 yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel -y 2.创建mysql用 ...
- <checking for mysql_config not found>
php 5.3.29编译安装排错: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --w ...
- Eclipse下git如何创建分支
1.项目–Team–Switch To –New Branch 2.Branch name 填写自己的版本号,然后Finish即可 3.将分支内容Push到远程服务器上