设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
JAVA
›
String Class
返回列表
发帖
查看:
119
|
回复:
1
String Class
[复制链接]
李迎恺
李迎恺
当前离线
积分
15
4
主题
7
帖子
15
积分
新手上路
新手上路, 积分 15, 距离下一级还需 35 积分
新手上路, 积分 15, 距离下一级还需 35 积分
积分
15
发消息
发表于 2022-9-21 20:12:11
|
显示全部楼层
|
阅读模式
文章目录
我们先直接new 个 StringBuilder,看个效果
既然发现直接使用,没有现象,那么我们就来传参。
回顾前面在讲 字符串常量池的时候,有两个字符串拼接,拼接好的字符串引用类型就是StringBuilder类型。不入池。
代码示例(模仿当时情景):
虽然我们前面说: StringBuilder 和 StringBuffer 几乎一样,但 是 几乎,而不是完全,所以还是会存在着些许不同的地方,接下来,我们就来讲一下 StringBuilder 和 StringBuffer的区别。
把字符串转变成StringBuilder类型/StringBuffer类型,必须调用对应的构造方法
StringBuilder类型/StringBuffer类型 转变成 String类型,调用 toString 方法
文章的最后,以面试的问题结束
面试题:请解释String、StringBuffer、StringBuilder的区别
StringBuffer 、 StringBuilder、 String 是三种数据类型
首先来回顾下String类的特点:
任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指
向而已。
通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和
StringBuilder类。
再来说 StringBuffer 和 StringBuilder ,从内部的方法上来说:大同小异,基本一致。
StringBuilder
我们先直接new 个 StringBuilder,看个效果
既然发现直接使用,没有现象,那么我们就来传参。
第一种 直接传参
疑问由此而生,sb 是一个引用,存储的地址,那么它怎么 就可以打印"abcdef"呢?
这是因为 sout(System.out,println) 调用的是 sb 引用类型的 toString。
那么我们 Ctrl+左键,进入 StringBuilder 类型中
那么我们就可以这么去写,因为它的返回值本身就是 String
第二种,通过append方法去添加
#ensp;
这是我们再 append 一个字符串时,会发生怎么的效果
append 可以连用。
语法: append().append();
回顾前面在讲 字符串常量池的时候,有两个字符串拼接,拼接好的字符串引用类型就是StringBuilder类型。不入池。
代码示例(模仿当时情景):
public class Test {
public static void main(String[] args) {
String str = "abcdef";
str+="123";
System.out.println(str);
}
}
由此得出局部结论:在循环拼接字符串的时候,使用 StringBuilder / StringBuffer ,效率要比String更高。(最后我们在对其优化一波)
虽然我们前面说: StringBuilder 和 StringBuffer 几乎一样,但 是 几乎,而不是完全,所以还是会存在着些许不同的地方,接下来,我们就来讲一下 StringBuilder 和 StringBuffer的区别。
由此得知,StringBuilder 和 StringBuffer 的功能都差不多,大部分功能都相同,
但是 有些功能,虽然名称是一样的,但是功能上的实现,却存在着细微的区别。
比如:append
小知识点:
把字符串转变成StringBuilder类型/StringBuffer类型,必须调用对应的构造方法
StringBuilder类型/StringBuffer类型 转变成 String类型,调用 toString 方法
文章的最后,以面试的问题结束
面试题:请解释String、StringBuffer、StringBuilder的区别
String 的内容不可修改,StringBuffer 与 StringBuilder的内容可以修改
StringBuffer 与 StringBuilder 大部分功能是相似的
StringBuffer 采用同步处理(synchronized),属于线程安全操作;而 StringBuilder 未采用同步处理(synchronized),属于线程不安全操作
回复
使用道具
举报
汐嘉
汐嘉
当前离线
积分
11
2
主题
6
帖子
11
积分
新手上路
新手上路, 积分 11, 距离下一级还需 39 积分
新手上路, 积分 11, 距离下一级还需 39 积分
积分
11
发消息
发表于
6 天前
|
显示全部楼层
1v1飘过
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表