java中字符串类有哪些_java 中操作字符串都有哪些类?它们之间有什么区别?-程序员宅基地

技术标签: java中字符串类有哪些  

一、Java String类

字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。

需要注意的是String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且浪费有限的内存空间。

c7a948fa90f12f543d573ae9af417233.png

我们可以看到,初始String值为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了“hello world”字符串也相应的需要开辟内存空间,这样短短的两个字符串,却需要开辟三次内存空间,不得不说这是对内存空间的极大浪费。为了应对经常性的字符串相关的操作,谷歌引入了两个新的类——StringBuffer类和StringBuild类来对此种变化字符串进行处理。

二、StringBuffer 和 StringBuilder 类

1871ec3fa1b040038552ee11d7fd4fc3.png

三者区别:

string:不可变字符序列

StringBuffer:可变字符序列、线程安全、效率低

StringBuilder:可变字符序列、线程不安全、效率高

注:

String的使用陷阱:

String  ss = "a";

ss +="b";

如果多次执行这些改变字符串内容的操作,会导致大量副本字符串对象存在内存中,降低效率。如果这样的操作放在循环中,会极大影响程序的性能。

三、代码实例

String的拼接与StringBuilder的使用对比,简单的12个字符串的循环解析拼接,相差了28毫秒,没有对比就没有伤害,以后用StringBuilder吧,暂时还不知道这个东西会有什么弊端,持续观察吧

76e98d89723add767b695408c525f605.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33641391/article/details/114137882

智能推荐

九度oj 题目1022:游船出租-程序员宅基地

文章浏览阅读91次。题目描述: 现有公园游船租赁处请你编写一个租船管理系统。当游客租船时,管理员输入船号并按下S键,系统开始计时;当游客还船时,管理员输入船号并按下E键,系统结束计时。船号为不超过100的正整数。当管理员将0作为船号输入时,表示一天租船工作结束,系统应输出当天的游客租船次数和平均租船时间。 注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有租船没有还船,或者只有还船没有..._oj游船出租

【教程】用 HTML JavaScript 制作 2.5D 迷宫游戏地图_2.5d游戏地图制作-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏7次。  我写了一个能够随机生成迷宫的算法,得到了用户很好的反响,对大家有所帮助。我现在想将这个迷宫以2.5D游戏地图的方式呈现出来。最初我考虑使用CSS来实现这个目标,但效果并不太理想,因为我无法只将它渲染成背景,而不对整个网站进行重新排版。因此,虽然我不打算继续使用CSS来达到这个目标,但我想与大家分享如何使用CSS来按比例渲染迷宫的方法。后来,我决定使用HTML5画布功能和地图块的坐标变换来生成2.5D游戏地图。为此,我在JavaScript脚本中添加了坐标变换的脚本,分享出来希望能对大家能有所帮助。在文章_2.5d游戏地图制作

匹配,正则表达式-程序员宅基地

文章浏览阅读95次。Function isEng(ifEng As String) As Integer '判断是否英文 isEng = 0 With CreateObject("VBSCRIPT.REGEXP") .Global = True .Pattern = "[a-zA-Z]" If .test(ifEng) Then ..._"with createobject(\"vbscript.regexp\")"

Vue学习笔记六:v-model 数据双向绑定-程序员宅基地

文章浏览阅读102次。目录 v-model简介和适用范围 新建HTML 所见即所得 v-model模拟简易计算器 v-model简介和适用范围Vue的一大特点之一就是数据的双向绑定,v-model就是实现这个功能的指令,v-model只能运用到表单元素中,例如input,ra...

【转】【Egit】如何将eclipse中的项目上传至Git-程序员宅基地

文章浏览阅读66次。1.下载egit插件打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的。在菜单栏依次打开eclipse→help→install new software→add,Name栏中输入egit,location栏中输入 http://download.eclipse.org/egit/updates/ ,点击ok进行下载。下载完成后会提示重启eclip..._egit如何上传项目

自定义Titlebar的实现_自定义titlebar png-程序员宅基地

文章浏览阅读2.6k次。项目中基本上每一个界面都配有相关标题栏,而且雷同到无可救药,于是为了不重复的在每个xml布局里写上冗长的代码,有必要自定义一番,来简化每个界面xml的代码。 先看下效果图 开始实现 首先我们创建title_bar.xml

随便推点

Kafka集群管理工具kafka-manager的安装使用-程序员宅基地

文章浏览阅读69次。一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容:管理多个集群轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)运行首选副本选举使用选项生成分区分配以选择要使用的代理运行分区重新分配(基于生成的分配)使用..._getting org.scala-sbt sbt 0.13.18 (this may take some time)... you probably

Qt智能指针_qt 智能指针-程序员宅基地

文章浏览阅读145次。智能指针介绍https://blog.csdn.net/liyuanbhu/article/details/77825655什么是隐式共享和写时拷贝https://blog.csdn.net/ljianhui/article/details/22895505QT实现之智能指针的单例结构https://blog.csdn.net/zhenguo26/article/details/91447244..._qt 智能指针

分布式协调技术-程序员宅基地

文章浏览阅读2.5k次。一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果这些进程..._分布式协调技术

pip安装django失败_为什么直接pip安装django失败-程序员宅基地

文章浏览阅读7.3k次。pip install django时提示 Cannot fetch index base URL https://mirrors.tuna.tsinghua.edu.cn/pypi/simple/,原因时一些官方的源很多都被墙了,访问不了,国内提供一些镜像的源,可以较快访问。经过验证,这个源sudo pip install django -i https://pypi.tuna.tsin_为什么直接pip安装django失败

Vue学习笔记之Nodejs中的NPM使用-程序员宅基地

文章浏览阅读53次。0x00 NPM是什么简单的说,npm就是JavaScript的包管理工具。类似Java语法中的maven,gradle,python中的pip。0x01NPM安装傻瓜式的安装。第一步:打开https://nodejs.org/en/第二步:第三步:我们为了统一版本,虽然node.js更新到了8.11.1的版本,但对于我个人而言,还是..._"{ \"name\": \"xiang\", \"version\": \"1.0.0\", \"description\": \"\", \"main\": \"index.js"

理解 K8s 资源更新机制,从一个 OpenKruise 用户疑问开始_kubectl app-程序员宅基地

文章浏览阅读887次。背景OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器,但 OpenKruise 提供了更多的增强功能如:优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、统一 sidecar 容器注入管理等,都是经历了阿里巴巴超大规模应用场景打磨出的核心能力。这些 feature 帮助我们应对更加多样化的部署环境和需求、为集群维护者和应用开发者带来更加灵活的部署发布组合策略。目前在阿_kubectl app

推荐文章

热门文章

相关标签