String类
- 字符串一旦初始化就不可以被改变。
- String实现了Serializable接口,是不可变的字符序列;底层使用char[]存储
- 实现了Comparable接口:表示String可以比较大小
String内部定义了final char[] value用于存储字符串数据
字符串常量池
由于s和s1都指向了同一个字符串对象,则s==s1
以下两句话的区别:String str1=”abc”; //在字符串常量池中创建了字符串对象,然后指向了str1这个变量。
Strings str2=newString(“abc”); //在堆内存中创建了字符串对象,然后引用指向了str2变量
字符串方法之获取
字符串方法之转换
字符串方法之判断
compareTo() 方法
compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。
该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。
如果是字符串之间的比较,那么小于参数返回小于0的值,反之同理。
Intern()方法
返回字符串对象的规范化表示形式。
一个初始为空的字符串池,它由类string私有地维护。
当调用intern方法时,如果池己经包含一个等于此String对象的字符串(用equals(Object)方法确定),则返回池中的字符串。否
则,将此string对象添加到池中,并返回此String对象的引用。
StringBuffer
- StringBuffer代表可变的(可变长度)字符序列
- StringBuffer可以对字符串内容进行增删等修改操作,此时不会产生新的对象,返回的对象依旧是当前的StringBuffer类型
StringBuffer是一个线程安全的字符串序列,对应的效率有点低,所以引出StringBuilder
构造函数stringBuffer():构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。
- StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
其增删改查的方法,任何操作之后会将该缓冲区对象进行返回(除某些特殊方法,如setLength,其方法返回数据类型是void)
补充:而StringBuilder跟StringBuffer类似,只不过StringBuilder是线程不安全的,当然效率也会更快些,具体用哪个的话,看是否有涉及到线程操作。