String数据类型,StringBuffer以及 StringBuilder

 

2.1String

String数据类型在JDK 中定义使用了final 关键字,也就是说一个String 对象一旦生成就无法改变存放在常量池中直到被GC,对String 变量重新赋值其实只是对变量的引用重新赋值,字符串内容并未改变,优点:极大的复用了相同的字符串不需要每次都去创建一个字符串对象。

 

2.2String 常量池

专门用来存储已经创建好的字符串常量(New的字符串存在于堆中)

常量池的位置:JDK1.6之前与方法区

JDK1.7在堆中

JDK1.8之后在元空间

 

2.3常见的API

1.length():字符串的长度

2.Indexof(String ch):字符串ch中第一次出现的下标位置,不包含则返回-1.

3.SubString():取子串:参数两种(int begin)

(int begin,int end)

4.char charAt(int index) :根据位置index 取字符

5.boolean  Contains(String str):字符串是否包含str这个串

6.boolean  startwith(String str):是否以str开头

7.boolean  endwith(String str):是否以str结尾

8.Char[]  toCharArray() :将字符串转换为字符数组

9.String[]  str=Str.split(","); 以,为字符进行切割字符串形成字符串数组

10.+操作底层是通过StringBuffer 实现的,String对象的字符串拼接其实是被JVM解释成了StringBuffer对象的拼接,所以这些时候String对象的速度并不会比StringBuffer慢。

 

2.4 StringBuffer :线程安全:很多方法用了Synchronized

1.字符串缓冲区,是一个容器,长度可变,可以直接操作多个数据类型,

2.str.append(“参数”)  :参数添加到str末尾

3.insert(index,数据):参数添加到str指定位置index位置上

4.删除:delete(start,end) ,删除数据:包左不包右[start,end)

5.deleteChatAt(index) ,删除数据:删除指定位置上index的字符

6.字符串反向输出:StringBuffer reverse()

7.修改:StringBuffer replace(start,end,str)指定范围替换为str

8.Void setCharAt(star,end,ch)指定范围替换为ch字符串

 

2.5StringBuilder

1.与StringBuffer具有相同的操作

2.StringBuffer是线程安全的类。StringBuilder不是线程安全的类,在单线程中性能要比StringBuffrer高。

 

2.6效率:StringBuilder>Stirngbuffer>String

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值