下面我们就字符串连接方面分析。

1.String

打开String的源码,如图所示

会发现存储字符串的字符数值是final常量。再看St

final修饰的属性为常量(值不可改变),要么在声明的同时赋值,要么在构造方法里面进行赋值,http://www.cppcns.com一旦赋值就不能改变。

所以,用String来实现字符串拼接,由于String的值不可改变,所以每次拼接都要生成一个新的String来存储新的字符串。所以使用String来处理字符http://www.cppcns.com串拼接性能会很低。

更多String的信息,可以参考博客:http://longpo.iteye.com/blog/2199493

2.StringBuffer

StringBuffer类继承了抽象类 AbstractStringBuilder类,打开AbstractStringBuilder源码

再来StringBuffer看看重载的三个构造方法

发现都是调用父类AbstractStringBuilder的构造方法

发现StringBuffer的存储数据的char数组不是final类型的,说明可以变更,且构建出来的字符串都还有空余的位置来拼接字符串。

在StringBuffer中我们使用awww.cppcns.com但一直拼接肯定也不够用。所以有必要看看append函数的源码实现。

查看其父类AbstractStringBuilder的append方法

发现当value数组容量不够时,会创建一个新的value数组来存储字符串。到这里就应该明白了StringBuffer字符串拼接的原理啦。当char value数组不够时会创建个更大容量的数组来存储。效率明显比String高。

3.StringBuilder

StringBuilder和StringBuffer是两兄弟,用法基本一样,不同的是StringBuffer是同步的,线程安全的,而StringBuilder不保证同步,线程不安全。

StringBuilder在大多数实现中比StringBuffer快, 在字符串缓冲区被单个线程访问时,建议优先使用StringBuilder

以上所述是小编给大家介绍的java字符串抉择,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: java字符串抉择

本文地址: http://www.cppcns.com/ruanjian/java/174908.html

java字符串编程_java字符串抉择相关推荐

  1. java 字符串面试_Java字符串面试问答

    java 字符串面试 String is one of the most widely used Java Class. Here I am listing some important Java S ...

  2. java idwork长度_java 字符串id

    Java FutureTask import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.c ...

  3. java字符串转字符串数组_Java字符串数组到字符串

    java字符串转字符串数组 Today we will look into how to convert Java String array to String. Sometimes we have ...

  4. java 字符串函数_Java字符串函数– 25+必须知道方法

    java 字符串函数 Java字符串函数 (Java String Functions) Java String class has a lot of functions to manipulate ...

  5. java字符串转字符串数组_Java字符串数组

    java字符串转字符串数组 Java String array is used to hold fixed number of Strings. String array is very common ...

  6. java 字符 加密_Java 字符串的加密与解密

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为了保证程序的安全,经常需要用到数据加密的方法.Java 中提供了专门用于加密运算的类和接口. 除了使用加密类和接口外,还可以通过多种方式实现字符串的加密 ...

  7. java拼接字符串的_Java字符串拼接(连接)

    对于已经定义的字符串,可以对其进行各种操作.连接多个字符串是字符串操作中最简单的一种.通过字符串连接,可以将两个或多个字符串.字符.整数和浮点数等类型的数据连成一个更大的字符串. String 字符串 ...

  8. java字符对比_Java 字符串比较

    在 Java 中,比较字符串的常用方法有 3 个:equals() 方法.equalsIgnoreCase() 方法. compareTo() 方法 1. equals() equals() 方法将逐 ...

  9. java比较日期字符串大小写_java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

最新文章

  1. python语言编程环境-day02--编程语言的分类与Python开发环境的搭建
  2. python下载安装教程2.7-Linux下安装python-2.7
  3. 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
  4. tensorflow一维卷积输入_tensorflow中一维卷积conv1d处理语言序列的一点记录
  5. localStorage 真正的本地缓存
  6. 通过meta进行重定向
  7. leetcode719:直线上的第k近点对
  8. 服务器小白-MYSQL基础安装配置
  9. 【译】Vault 学习资源:1.0, 自动解印, 代理, Kubernetes
  10. mysql 5.7连接java_MACOS mysql 5.7 Navicat 可以连接 , Java 报错
  11. ubuntu20.05安装vmware workstation 16,踩坑:GLib does not have GSettings support.
  12. 一键清理C盘垃圾文件,让你的电脑运行飞起
  13. samkoon触摸屏用什么软件编程_触摸屏如何编程_触摸屏编程用什么软件
  14. 编程中如何不使用中间变量的情况下将两个变量的值进行交换
  15. Burp Suite 实战指南
  16. tesseract-ocr
  17. Android招聘心得分享
  18. 微信小程序——案例:京东首页
  19. Tomcat7集群共享Session 基于redis进行统一管理
  20. linux环境(centos7)编辑文件如何显示行号

热门文章

  1. python的none是什么-python中stream=None什么意思?
  2. python和java哪个-Python和Java两门编程语言,学习哪个更好?
  3. python能写软件吗-python代码能做成软件吗
  4. python好学嘛-Python对于没有计算机基础知识的人来说,好学吗?
  5. python读取文件一行-Python逐行读取文件内容
  6. 简明python教程购买-简明python教程哪版(python看什么书)
  7. openvidu部署
  8. 路由在express中的实践
  9. codeforces C Deletion of Repeats(hash)
  10. linux之sed用法 (文本处理工具)