String概述
String 被声明为 final,因此它不可被继承。
在 Java 8 中,String 内部使用 char 数组存储数据。
在 Java 9 之后,String 类的实现改用 byte 数组存储字符串,同时使用 coder 来标识使用了哪种编码。
常用API
//比较字符串的,比较的是字符串内容 ,返回的是boolean
boolean equals(Object anObject)
//根据索引获取对应的字符
char charAt(int index)
//获取字符串长度
char[] toCharArray()
//将指定的字符串连接到该字符串的末尾。返回的是一个新串
int indexOf (String str)
//截取,返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex
String substring (int beginIndex, int endIndex)
//将前面的字符串替换成后面的字符串
String replace (CharSequence target, CharSequence replacement)
//将此字符串按照给定的规则拆分为字符串数组,比如按“,”切分,注意按“.”切分需要加“\\”转义
String[] split(String regex)
//判断字符串是否是以我们填写的字符串结尾
boolean endsWith(String suffix)
//判断字符串是否是以我们填写的字符串开头
boolean startsWith(String prefix):
new String(“abc”)会创建两个对象(前提是常量池中没有“abc”字符串对象)
首先“abc”是字符串,会在字符串常量池中创建这个对象,指向“abc”这个字符串字面量。
而使用new的话会在堆空间中创建这个对象。
StringBuffer StringBuilder的区别
可变性
String类中使用字符数组保存字符串,private final char value[],所以string对象是不可变的。StringBuilder与StringBuffer都继承自Abs