# Java常用类之字符串类 **Repository Path**: fpfgitmy_admin/java-used-string ## Basic Information - **Project Name**: Java常用类之字符串类 - **Description**: 包含了String、StringBuffer、StringBuilder类的简述 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-28 - **Last Updated**: 2021-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### String、StringBuffer、StringBuilder对比 + String:不可变的字符序列、底层使用不可变的(添加了final)char[]存储 + StringBuffer:可变的字符序列、线程安全的(效率低)、底层使用可变的(没有添加final)char[]存储 + StringBuilder:可变的字符序列、线程不安全(效率高)、底层使用可变的(没有添加final)char[]存储 ##### 效率对比 ``` package com.felixfei.study.test; /** * @describle String、StringBuffer、StringBuilder对比 */ public class StringBufferBuilderTest { /* 最后结果: String拼接用时=1100 StringBuffer拼接用时=5 StringBuilder拼接用时=4 三者效率: StringBuilder > StringBuffer > String */ public static void main(String[] args) { long startTime = 0L; long endTime = 0L; String text = ""; StringBuffer sb = new StringBuffer(""); StringBuilder sb1 = new StringBuilder(""); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { text += i; } endTime = System.currentTimeMillis(); System.out.println("String拼接用时=" + (endTime - startTime)); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { sb.append(String.valueOf(i)); } endTime = System.currentTimeMillis(); System.out.println("StringBuffer拼接用时=" + (endTime - startTime)); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { sb1.append(String.valueOf(i)); } endTime = System.currentTimeMillis(); System.out.println("StringBuilder拼接用时=" + (endTime - startTime)); } } ```