java字符串和常用方法总结

时间:2023-01-07 16:13:58

Java字符串类(java.lang.String)
String 类的常用的创建方式一般两种
1、String s1=”abc”;
2、String s2=new String(“abc”);
这两中方式区别在于 :
1中先是在常量池检查是否有这个字符串没有则创建一个abc字符串,然后JVM会自动开辟一块堆内存存放一个隐式对象指向abc这个字符串,接下来赋值给等号左边的S1,S1是栈内存,它指向的堆内存的首地址。
2中是在第一种创建的前提下自己new了一个对象,又开辟了一块堆内存,这个是明确new的对象,所以第二种方式创建了两个对象。一个是隐式的,另一个是明确new的。
显然第一种方式更加节省内存。
一、字符串的特点以及原理
a、不可改变的常量
public final class String
final修饰类中的属性或者变量,无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。
b、不能被子类继承
final修饰类中的方法
作用:可以被继承,但继承后不能被重写。
final修饰类
作用:类不可以被继承。
常用方法有:
indexof(int ch)从字符位置为0开始查找,如果找到则返回在字符串的索引位置。
charAt()获取索引出的char值。
compareto() 比较ASCII码值,对应位置的ASCII码值。
Boolean equals(String s)比较俩个字符串的内容是否相同。
contains(String s )判断字符串中是否包含指定的字符串。
Startswith(string s)~endswith()
getchars() 将字符串转换成字符数组。
还有替换,分割,去空格。
replace()
replaceAll(用正则表达式)
spile()分割
trim()去空格。
subString(截取字符串)起始位置包括在内,结束位置不包括在内。
具体的可以查阅API文档。
可变的字符串
StringBuilder线程不安全,效率高一些
StringBuffer 线程安全的可变的字符序列。
StringBuffer的缓冲区大小,默认为16.