·························································································································大秦男儿,勿忘东出。
此处源码为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()