Java笔记:String,StringBuilder和StringBuffer

Java笔记:String,StringBuilder和StringBuffer

String

1.概述

(1)String 类在 java.lang 包下,所以使用的时候不需要导包
(2)String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象
(3)String是final类,不能被其他的类继承
(4)String中有属性 private final char value[]; 用于存放字符串内容,value是一个final类型,不可以修改(value的地址不可修改,但是value数组元素值可以修改)(本质是----final的是数组对象,对象不可以修改,但是对象内容可以修改)

2.String类的构造方法

常用的构造方法
(1)public String()
创建一个空白字符串对象
(2)public String(char[] chs)
根据字符数组内容创建字符对象
(3)public String(String original)
根据传入的字符串内容创建字符串对象
(4)String s = “abc”;
直接赋值的方式创建字符串对象

3.String类的继承关系

(1)实现了serializable接口,String对象可以实现串行化
(2)实现了comparable,String对象可以进行比较

4.注意

String s = “1”+“1”;常量相加,结果在常量池中;
String s = new String(“1”)+“1”,变量相加,结果在堆中。

StringBuilder

1.概述

StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的,在StringBuilder上的主要操作是append方法。

2.StringBuilder类和String类的区别

  • String类:内容是不可变的,但是线程安全;
  • StringBuilder类:内容是可变的,它的性能比String更高效,因为它不会像String那样在每次修改时都创建一个新的对象,而是在原有对象的基础上进行修改,不是线程安全的。

3.StringBuilder类的构造方法

(1)public StringBuilder()
创建一个空白可变字符串对象
(2)public StringBuilder(String str)
根据字符串的内容,来创建可变字符串对象

4.StringBuilder和String相互转换

(1)StringBuilder转换为String
​ public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
(2)String转换为StringBuilder
​ public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder

StringBuffer

1.概述

StringBuffer类,可变字符序列,用于构造字符串对象,内部使用自动扩容的数组来操作字符串数据,StringBuffer类属于java.lang包下。

2.StringBuffer和String的对比

(1)String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址。
(2)StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新只更新内容,不用每次更新地址。

3.StringBuffer类的构造方法

(1)StringBuffer()
构造一个其中不带字符的字符缓冲区。
(2)StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
(3)StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。

小结

(1)字符串需要大量修改,一般使用StringBuffer或StringBuilder。
(2)字符串需要大量修改,并在单线程的情况下,使用StringBuilder。
(3)字符串需要大量修改,并在多线程的情况下,使用StringBuilder。
(4)字符串少量修改,使用string。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值