源码-JDK源码 String
·························································································································大秦男儿,勿忘东出。
此处源码为JDK8
JDK9+ 中的String是用byte数组存的
String 是对象类,不是Java的基本类型
1.String 方法
通过String 的接口可得:
- String 可以序列化
- String 可以大小比较
- String 是由char数组组成的
2.String 构造函数
(序号自上而下)
-
不带参数的构造函数
-
带String的构造函数:字符串与传入的参数共享同一个内存字符串
-
带char数组的构造函数:字符串的char数组与参数的数组不在同一个内存,相当于创建了一个新的char数组。
-
带char数组、起始地址,复制个数的构造函数: 字符串的char数组与参数的数组不在同一个内存,相当于创建了一个新的char数组。
-
带int数组、起始地址,复制个数的构造函数:int占4个字节,char为两个字节,首先要判断int的值能否被一个char存储,首先确定出存储所需的char数组的大小,再依次将int数组赋值到新的char数组
-
以下的byte数组同理。
-
带StringBuilder 的构造函数,复制新的char数组
-
带StringBuffer 的构造函数,复制新的char数组
3.常用方法
length()
isEmpty()
charAt()
startsWith(String prefix, int toffset)
endsWith(String suffix)
indexOf(String str, int fromIndex)
lastIndexOf(String str, int fromIndex)
concat(String str)
replace(char oldChar, char newChar)
matches(String regex)
replaceFirst(String regex, String replacement)
String replaceAll(String regex, String replacement)
split(String regex, int limit)
toLowerCase()
toUpperCase()
trim()
toCharArray()