一文了解Java 中的String、StringBuffer 与StringBuilder

String结构剖析

String是final 类,不能被其他的类继承

String有属性private final char vaLue[]; 用于存放字符串内容

注意: value 是个final类型, 不可以修改: 即value不能指向新的地址,但是单个字符内容是可以变化

两种创建String对象的区别

方式一:直接赋值String s1 = "hsp";//s1指向常量池的"hsp"

方式二:调用构造器String s2 = new String("hsp");//s2指向堆中对象

图解

图解

这里b.intern()方法最终返回的是常量池的地址(对象)

  1. String是一个final类, 代表不可变的字符序列

2)字符串是不可变的。一个字符串对象一旦被分配, 其内容是不可变的.

重要规则,Stringc1 = "ab" + "cd";常量相加,看的是池。Stringc1 = a + b;变量相加,是在堆中

结果=》hsp and hava

String类的常见方法应用实例

后面的最近去网上自己查就行

StringBuffer类

java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。

很多方法与String相同,但StringBuffer是可变长度的。

StringBuffer是一个容器。

String VS StringBuffer

  1. String保存的是字符串常量, 里面的值不能更改,每次String类的更新实际 上就是更改地址,效率较低//private final char value[];

  2. StringBuffer保存的是字符串变量,里面的值可以更改,每次 StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率较高

//char[] value; // 这个放在堆

看源码就行

看源码就行

StringBuffer转换

StringBuffer常用方法

append:追加

练习题

看源码

看源码

第一题的底层源码在这

第一题的底层源码在这

StringBuilder类

StringBuilder和StringBuffer均代表可变的字符序列,方法是一样的,所 以使用和StringBuffer一样

1)一个可变的字符序列。此类提供一个 与StringBuffer兼容的API,但不保证同 步(StringBuilder不是线程安全)。该类被设计用作StringBuffer的一个简易 替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类, 因为在大多数实现中,它比StringBuffer要快

2)在StringBuilder上的主要操作是 append和insert 方法,可重载这些方法, 以接受任意类型的数据

看源码就行

看源码就行

一级引用如下:

synchronized:已同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/718552.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初学者必看的web前端开发学习路线,干货满满!

初学者必看的web前端开发学习路线,干货满满! 随着互联网的深入发展,前端工程师这个岗位在市场上的需求,薪资也是很可观的。前端很火,想自学前端的人也很多。包括一些学生、上班族、以前的UI,java,或完全零基础&#xf…

数据库系统概论(个人笔记)(第四部分)

数据库系统概论(个人笔记) 文章目录 数据库系统概论(个人笔记)4、中间的SQL4.1 连接表达式4.2 视图4.3 事务4.4 完整性约束4.5 SQL数据类型和模式4.6 SQL中的索引定义4.7 授权 4、中间的SQL 4.1 连接表达式 Join Expressions Join…

C++之模板(一)

1、为什么需要模板 将具有相同逻辑的一段代码提供一份模板,当我们需要处理不同类型的时候,可以通过数据类型当作参数来传递,从而实例化出对应类型的处理版本。 2、模板的定义 也是一种静态多态。 3、模板的分类 4、函数模板 5、函数模板的使…

夏季家里粉尘螨虫满天飞?一招搞定!好用家用空气净化器品牌分享

每到夏季,是家中尘螨滋生的高发期。夏季无论是开窗通风还是关窗开空调,都很容易造成空气中的浮尘堆积,不注意卫生清洁,容易滋生细菌、尘螨。 易过敏、体质弱的人群长时间在空气污染环境中,很容易就会过敏或者发生其他…

openh264 SVC 时域分层原理介绍

openh264 OpenH264是一个开源的H.264编码器,由Cisco公司开发并贡献给开源社区。它支持包括SVC(Scalable Video Coding)在内的多种编码特性,适用于实时应用场景,比如WebRTC。OpenH264项目在GitHub上是公开的&#xff0…

外链是否会增加流量?

外链确实可以间接地帮助增加网站流量,不过要了解的是这不是直接影响,首先,外链主要是提升你的网站在搜索引擎中的整体权重。简单地说,当你的网站被很多其他的网站通过dofollow链接指向时,搜索引擎会认为你的网站内容质…

如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法

🛠️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法 摘要: 本文将带领大家深入学习如何解决 Xshell 使用 SSH 连接 Linux 服务器时报错“找不到匹配的 host key 算法”的问题。通过详细的操作步骤和代码案…

有什么可以创建ai聊天的软件?5个软件帮助你快速创建ai聊天

有什么可以创建ai聊天的软件?5个软件帮助你快速创建ai聊天 AI聊天软件是一种利用人工智能技术构建的聊天机器人系统,它能够模拟人类的对话方式,回答用户提出的问题或者进行对话。这类软件在各个领域都有广泛的应用,可以用于客户服…

从Instance classifier重新思考多实例学习

弱监督的WSI分类通常被形式化为多实例学习(MIL)问题,其中每张slide都被视为一个bag,从中切出的patch被视为实例。现有的方法要么通过伪标记训练实例分类器,要么通过注意力机制将实例特征聚合为bag特征,然后…

Shopee虾皮API:获取商家店铺商品列表

一、平台介绍 Shopee,作为东南亚及中国台湾地区领先的电商平台,为卖家提供了一个便捷、高效的销售渠道。作为卖家,能够将自己的商品展示在Shopee平台上,并通过平台的流量和工具,将商品销售给更多的潜在买家。 为了帮…

Elasticsearch-使用Logstash同步Mysql

1.安装logstash es服务器版本必须和logstash版本一致 7.9.2 在/usr/local/src/下新建logstash文件夹,解压 下载logstash后查看是否安装成功,在logstash的bin目录下输入指令: ./logstash -e input { stdin { } } output { stdout {} }2.my…

Java项目:基于SSM框架实现的汽车养护保养管理系统【ssm+B/S架构+源码+数据库+开题+毕业论文+任务书】

一、项目简介 本项目是一套基于SSM框架实现的汽车养护保养管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

【Java05】Java中的多维数组

从数组底层运行机制上看,Java没有多维数组一说。所谓多维数组,是说一个引用变量指向的元素也是引用变量。 例如,type[] arrayName是个指向type类型元素的数组。倘若type也是数组引用变量,比如int[],那么这个数组就可以…

警惕!ELSEVIER旗下1本双1区TOP被On Hold !请大家谨慎投稿

【SciencePub学术】又1本!双1区TOP刊被On Hold !官方现在对期刊质量的管控越来越严格了,被标记为On Hold后的期刊中,大部分的命运也是被WOS数据库剔除!所以请大家谨慎投稿! 《Information Sciences》作为一…

Spring Security+Spring Boot实现登录认证以及权限认证

基本概念 “Authentication(认证)”是spring security框架中最重要的功能之一,所谓认证,就是对当前访问系统的用户给予一个合法的身份标识,用户只有通过认证才可以进入系统,在物理世界里,有点类似于“拿工卡刷门禁”的…

【达梦数据库】typeorm+node.js+达梦数据库返回自增列值

1.配置环境,下载依赖包 typeorm init --name test22 --database mysql typeorm-dm,uuid,typeorm2,修改连接信息 修改src/ data-source.ts 文件 连接dm,可参考刚刚安装typeorm-dm 模块中的 README.md 3.修改自增信息 /* 修改前*/PrimaryGen…

HarmonyOS之自选股App

支持在 鸿蒙、安卓、苹果设备上运行。 1.界面效果展示 2.数据存储 数据存储采用的是官方的 ohos.data.relationalStore.relationalStore stock_code表用来存储A股市场5000多家公司的股票代码和名称等信息 const TAB_STOCK_CODE "stock_code" const CREATE_TABL…

思科配置:vlan、两个交换机、两个路由器、四台主机

一、如图配置 各设备ip地址、接口、vlan如图所示。 二、配置各主机ip、子网掩码、默认网关 PC0 PC8 PC1 PC9 PC2 PC10 PC3 PC11 三、配置Switch0 (期间报错为拼写错误) MySwitch0> MySwitch0>en MySwitch0#conf t Enter configuration co…

《珊瑚岛》是一款什么类型的游戏 苹果电脑如何玩到《珊瑚岛》

在众多电子游戏中,有些游戏因其独特的游戏体验和丰富的内容而脱颖而出,《珊瑚岛》便是其中之一。在游戏中你将离开宝京前往珊瑚岛,种植农作物、饲养动物、和岛民成为朋友。您不仅可以振兴该岛小镇,还可以保护和修复周围的珊瑚礁。…

2毛钱的SOT23-5封装单运放LMV321支持轨到轨输出

前言: 运放比三极管放大电路更简洁、PCB占用空间小,该LMV321单价较低,且支持轨到轨,TI的单价约0.4元,国产有多家半导体厂商有替代产品,追求性价比的可以选择国产LMV321,参考价格约0.2元。在多数…