java String类

一 字符串的特点

1、String类是final声明的
2、字符串的对象也是不可变对象,意味着一旦进行修改,就会产生新对象

我们修改了字符串后,如果想要获得新的内容,必须重新接受。

如果程序中涉及到大量的字符串的修改操作,那么此时的时空消耗比较高。可能需要考虑使用StringBuilder或StringBuffer。

3、String对象内部是用字符数组进行保存的

JDK1.9之前有一个char[] value数组,JDK1.9之后byte[]数组

4、String类中这个char[] values数组也是final修饰的,意味着这个数组不可变,然后它是private修饰,外部不能直接操作它,String类型提供的所有的方法都是用新对象来表示修改后内容的,所以保证了String对象的不可变。
5、就因为字符串对象设计为不可变,那么所以字符串有常量池来保存很多常量对象

常量池在方法区。

如果细致的划分:

(1)JDK1.6及其之前:方法区

(2)JDK1.7:堆

(3)JDK1.8:元空间

二 String类的常用api

(1)boolean isEmpty()

(2)int length()

(3)String concat(xx):拼接,等价于+

(4)boolean contanis(xx)

(5)int indexOf():从前往后找,要是没有返回-1

(6)int lastIndexOf():从后往前找,要是没有返回-1

(7)char charAt(index)

(8)new String(char[] ) 或new String(char[] ,int, int)

(9)char[] toCharArray()

(10)byte[] getBytes():编码,把字符串变为字节数组,按照平台默认的字符编码进行编码

​ byte[] getBytes(字符编码方式):按照指定的编码方式进行编码

(11)new String(byte[] ) 或 new String(byte[], int, int):解码,按照平台默认的字符编码进行解码

​ new String(byte[],字符编码方式 ) 或 new String(byte[], int, int,字符编码方式):解码,按照指定的编码方式进行解码

(12)String subString(int begin):从[begin]开始到最后

String subString(int begin,int end):从[begin, end)

(13)boolean matchs(正则表达式)

(14)String replace(xx,xx):不支持正则

String replaceFirst(正则,value):替换第一个匹配部分

String repalceAll(正则, value):替换所有匹配部分

(15)String[] split(正则):按照某种规则进行拆分

(16)boolean startsWith(xx):是否以xx开头

boolean endsWith(xx):是否以xx结尾

(17)String trim():去掉前后空白符,字符串中间的空白符不会去掉

(18)String toUpperCase():转大写

(19)String toLowerCase():转小写

三 String Stringbuffer Stringbuilder

1、可变字符序列:StringBuilder和StringBuffer

StringBuffer:老的,线程安全的(因为它的方法有synchronized修饰)

StringBuilder:线程不安全的

2、面试题:String和StringBuilder、StringBuffer的区别?

String:不可变对象,不可变字符序列

StringBuilder、StringBuffer: 可变字符序列

3、常用的API,StringBuilder、StringBuffer的API是完全一致的

(1)append(xx):拼接,追加

(2)insert(int index, xx):插入

(3)delete(int start, int end)

deleteCharAt(int index)

(4)set(int index, xx)

(5)reverse():反转

… 替换、截取、查找…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值