源码-JDK源码 String

源码-JDK源码 String
·························································································································大秦男儿,勿忘东出。


此处源码为JDK8
JDK9+ 中的String是用byte数组存的


String 是对象类,不是Java的基本类型

1.String 方法

源码-JDK源码 String

通过String 的接口可得:

  • String 可以序列化
  • String 可以大小比较
  • String 是由char数组组成的

2.String 构造函数

源码-JDK源码 String
(序号自上而下)

  1. 不带参数的构造函数

  2. 带String的构造函数:字符串与传入的参数共享同一个内存字符串

  3. 带char数组的构造函数:字符串的char数组与参数的数组不在同一个内存,相当于创建了一个新的char数组。

  4. 带char数组、起始地址,复制个数的构造函数: 字符串的char数组与参数的数组不在同一个内存,相当于创建了一个新的char数组。

  5. 带int数组、起始地址,复制个数的构造函数:int占4个字节,char为两个字节,首先要判断int的值能否被一个char存储,首先确定出存储所需的char数组的大小,再依次将int数组赋值到新的char数组

  6. 以下的byte数组同理。

  7. 带StringBuilder 的构造函数,复制新的char数组

  8. 带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()