StringBuffer、StringBuilder、String的区别

1、一个类似于 String 的字符串缓冲区java字符串转化为数字,但能被修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容,所有对StringBuffer或StringBuilder对象的字符序列的修改不会产生新的StringBuffer或StringBuilder对象,这点和String很大的不同。

java字符串转化为数字_如何将字符转化为数字java_1. 检查字符是否为数字

value没有final声明,value可以不断扩容,count记录有效字符的个数。

2、StringBuilder:线程安全,效率低;StringBuffer:线程不安全,效率高

StringBuffer和StringBuilder不同的API1、构造器

StringBuffer或StringBuilder对象的创建必须用new+构造器。

StringBuffer() 初始容量为16的字符串缓冲区

StringBuffer(int size) 构造指定容量的字符串缓冲区

StringBuffer(String str) 将内容初始化为指定字符串内容

2、和字符序列改变有关的方法

而且所有这些方法支持方法链

StringBuffer append(xx):提供了很多的append()方法,用于进行字符串拼接

StringBuffer delete(int start,int end):删除指定位置的内容

StringBuffer insert(int offset, xx):在指定位置插入xx

StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str

StringBuffer reverse() :把当前字符序列逆转

public static void main(String[] args) {
StringBuffer sf = new StringBuffer();
sf.append("hello").append("world").append("java");
System.out.println(sf);
}

方法链的原理

如何将字符转化为数字java_java字符串转化为数字_1. 检查字符是否为数字

当append和insert时java字符串转化为数字,如果原来value数组长度不够,可扩容

java字符串转化为数字_如何将字符转化为数字java_1. 检查字符是否为数字

如何将字符转化为数字java_java字符串转化为数字_1. 检查字符是否为数字

效率测试

package com.api.string;
public class TestStringBuilder {
public static void main(String[] args) {
testStringBuilder();
testStringBuffer();
testString();
}
public static void testString(){
long start = System.currentTimeMillis();
String s = new String("0");
for(int i=1;i<=10000;i++){
s += i;
}
System.out.println(s);
long end = System.currentTimeMillis();
System.out.println("String拼接+用时:"+(end-start));
long memory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
System.out.println("String拼接+memory: " + memory);
}
public static void testStringBuilder(){
long start = System.currentTimeMillis();
StringBuilder s = new StringBuilder("0");
for(int i=1;i<=10000;i++){
s.append(i);
}
System.out.println(s);
long end = System.currentTimeMillis();
System.out.println("StringBuilder拼接+用时:"+(end-start));
long memory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
System.out.println("StringBuilder拼接+memory: " + memory);
}
public static void testStringBuffer(){
long start = System.currentTimeMillis();
StringBuffer s = new StringBuffer("0");
for(int i=1;i<=10000;i++){
s.append(i);
}
System.out.println(s);
long end = System.currentTimeMillis();
System.out.println("StringBuffer拼接+用时:"+(end-start));
long memory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
System.out.println("StringBuffer拼接+memory: " + memory);
}
}

相关内容:

java常用类-字符串String类

Java单行函数字之符串函数

java运算符详细介绍

JS重复输出一个给定的字符串

JavaScript 转义字符串

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688