对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder

package zhengze;

/*如果需要对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder
StringBuffer:【字符串缓冲器】是线程安全的,效率低
StringBuilder:【字符串操作类】是线程不安全的,效率高
*/
public class StringTest {
public static void main(String[] args) {
/*
* String s1 = "hello"; String s2 = "world"; String s3 = "wei"; String
* s4 = s1 + s2 + s3; System.out.println(s4);
*/
/*
* 使用下面方式进行字符串的拼接操作 默认会创建一个长度是16的字符数组
*/
StringBuffer sBuffer = new StringBuffer();
sBuffer.append("Monica\t");
sBuffer.append("love\t");
sBuffer.append("Who");
// 会调用StringBuffer中的toString()方法
System.out.println(sBuffer);//false

String s = "Monica\tlove\tWho";
System.out.println(s == sBuffer.toString());// false
if ((s).equals(sBuffer)) {
System.out.println("相等");
} else {
System.out.println("不相等");//不相等
}
// 将StringBuffer对象转成字符串
String s5 = sBuffer.toString();
StringBuffer aBuffer = new StringBuffer(125);
aBuffer.append("1");
aBuffer.append("2");
aBuffer.append("3");
String as = "123";
// System.out.println(aBuffer);
// 如果想让String和StringBuffer用 == 引用数据类型比较的是地址值 ,
// StringBuffer必须调用toString()方法才和String进行比较
System.out.println(aBuffer.toString() == as);//false
System.out.println(aBuffer.equals(as));//false

}
}

-----------------------打印结果-----------------------------

Monica love Who
false
不相等
false
false

原文地址:https://www.cnblogs.com/Koma-vv/p/9537652.html

时间: 2024-08-02 20:17:27

对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder的相关文章

java中的String、StringBuffer、StringBuilder的区别

String.StringBuffer.StringBuilder都是java中的常用字符串类 ,下面来看看三者之间的异同. 一.可变与不可变: String:字符串常量,不可变.StringBuffer.StringBuilder为可变字符序列,是可变的. 二.是否多线程安全: String中的对象是不可变的,相当于常量,显然线程安全. StringBuffer:支持多线程安全. StringBuilder:不支持多线程安全. 三.执行效率: String.StringBuffer.Strin

测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简单的测试吧: public static void main(String[] args) { testStringJoin(); } static void testStringJoin() { long beg = System.currentTimeMillis(); String s = null;

字符串(String、StringBuffer、StringBuilder)

一.String 首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象.查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象. 字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下"".null.new String()三者的区别.null 表示string还没有new ,也就是说对象的引用还没有创建,也没有分配内存空间

从String类型字符串的比较到StringBuffer和StringBuilder

1. String类型 String类源码 为了从本质上理解String类型的特性所在,我们从String类型的源码看起,在源码中String类的注释中存在以下: /**Strings are constant; their values cannot be changed after they * are created. String buffers support mutable strings. * Because String objects are immutable they ca

四:Java之字符串操作String、StringBuffer和StringBuilder

string是我们经经常使用到的一个类型,事实上有时候认为敲代码就是在重复的操作字符串,这是C的特点,在java中.jdk非常好的封装了关于字符串的操作.三个类String .StringBuffer . StringBuilder .这三个类基本上满足了我们在不同情景下使用字符串的需求. 一.String JDK的解释是 "Strings are constant; their valuescannot be changed after they are created"也就是说St

String、StringBuffer、StringBuilder在进行字符串拼接时性能比较

String不适合做字符串拼接,每次会new新对象,效率最低,StringBuffer和StringBuilder效率高,StringBuffer线程安全,速度相对慢,用的少,只有在考虑线程问题时才使用.StringBuilder线程不安全,速度看,用的多.例: public class StringStringBuilderStringBuffer { int count=1000; public static void testString(){ Long start=System.curr

Java之字符串String,StringBuffer,StringBuilder

总结的很全面,关于这三个类的操作. Java之字符串String,StringBuffer,StringBuilder

Mac配置Python开发环境并实现简单的字符串和整数拼接

首先用HomeBrew安装一下Python的3.4版本.苹果自带的Python,开发的话还是算了吧.在终端里输入下面这行命令. brew install python3 接下来打开Sublime,语法修改为Python.输入 print ('Hello World') 注意,Python3中,print函数需要加上括号了.对于经常使用C,Java的新手,可能不太习惯不用加分号. 写完这行代码之后,打开终端,输入以下代码: python xxx.py 注意这里的xxx是Python文件的完整路径.

Oracle字符串截取和拼接应用

今天有人问了个关于Oracle字符串截取和拼接的问题,让我帮他写出SQL,看了下问题描述还比较清晰就试着解决下,利用午休时间把功能实现了,问题看似不难,但思路一定要清晰,不然就乱了,关键大量应用了Oracle的substr 和instr函数,下面贴出问题和脚本: 问题:sql中一个字段值为:1788987565327.768374872394903.21437238740213483874629.23412341234252345.其中顿号间隔的每一组数字位数和尾数不定,现在要使前面这个字段值中