java字符串编程_java字符串抉择
下面我们就字符串连接方面分析。
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字符串抉择相关推荐
- java 字符串面试_Java字符串面试问答
java 字符串面试 String is one of the most widely used Java Class. Here I am listing some important Java S ...
- java idwork长度_java 字符串id
Java FutureTask import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.c ...
- java字符串转字符串数组_Java字符串数组到字符串
java字符串转字符串数组 Today we will look into how to convert Java String array to String. Sometimes we have ...
- java 字符串函数_Java字符串函数– 25+必须知道方法
java 字符串函数 Java字符串函数 (Java String Functions) Java String class has a lot of functions to manipulate ...
- java字符串转字符串数组_Java字符串数组
java字符串转字符串数组 Java String array is used to hold fixed number of Strings. String array is very common ...
- java 字符 加密_Java 字符串的加密与解密
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为了保证程序的安全,经常需要用到数据加密的方法.Java 中提供了专门用于加密运算的类和接口. 除了使用加密类和接口外,还可以通过多种方式实现字符串的加密 ...
- java拼接字符串的_Java字符串拼接(连接)
对于已经定义的字符串,可以对其进行各种操作.连接多个字符串是字符串操作中最简单的一种.通过字符串连接,可以将两个或多个字符串.字符.整数和浮点数等类型的数据连成一个更大的字符串. String 字符串 ...
- java字符对比_Java 字符串比较
在 Java 中,比较字符串的常用方法有 3 个:equals() 方法.equalsIgnoreCase() 方法. compareTo() 方法 1. equals() equals() 方法将逐 ...
- java比较日期字符串大小写_java 字符串操作和日期操作
一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...
最新文章
- python语言编程环境-day02--编程语言的分类与Python开发环境的搭建
- python下载安装教程2.7-Linux下安装python-2.7
- 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
- tensorflow一维卷积输入_tensorflow中一维卷积conv1d处理语言序列的一点记录
- localStorage 真正的本地缓存
- 通过meta进行重定向
- leetcode719:直线上的第k近点对
- 服务器小白-MYSQL基础安装配置
- 【译】Vault 学习资源:1.0, 自动解印, 代理, Kubernetes
- mysql 5.7连接java_MACOS mysql 5.7 Navicat 可以连接 , Java 报错
- ubuntu20.05安装vmware workstation 16,踩坑:GLib does not have GSettings support.
- 一键清理C盘垃圾文件,让你的电脑运行飞起
- samkoon触摸屏用什么软件编程_触摸屏如何编程_触摸屏编程用什么软件
- 编程中如何不使用中间变量的情况下将两个变量的值进行交换
- Burp Suite 实战指南
- tesseract-ocr
- Android招聘心得分享
- 微信小程序——案例:京东首页
- Tomcat7集群共享Session 基于redis进行统一管理
- linux环境(centos7)编辑文件如何显示行号
热门文章
- python的none是什么-python中stream=None什么意思?
- python和java哪个-Python和Java两门编程语言,学习哪个更好?
- python能写软件吗-python代码能做成软件吗
- python好学嘛-Python对于没有计算机基础知识的人来说,好学吗?
- python读取文件一行-Python逐行读取文件内容
- 简明python教程购买-简明python教程哪版(python看什么书)
- openvidu部署
- 路由在express中的实践
- codeforces C Deletion of Repeats(hash)
- linux之sed用法 (文本处理工具)