一、String类是什么
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];/** Cache the hash code for the string */
private int hash; // Default to 0/** use serialVersionUID from JDK 1.0.2 for interoperability */
private static final long serialVersionUID = -6849794470754667710L;
由第一段源码可知,String是一个 final 类,底层实现是final的字符数组,一旦创建,无法改变。
二、如何创建
String s1 = "abc";//字符串常量池中创建一次(如不存在)
String s2 = new String("abc");//字符串常量池中和堆中各创建一次
关于字符串常量池这里就不再赘述。
三、常用方法
- char charAt (int index) 返回index所指定的字符
- String concat(String str) 将两字符串连接
- boolean endsWith(String str) 测试字符串是否以str结尾
- boolean equals(Object obj) 比较两对象
- char[] getBytes 将字符串转换成字符数组返回
- char[] getBytes(String str) 将指定的字符串转成制服数组返回
- boolean startsWith(String str) 测试字符串是否以str开始
- int length() 返回字符串的长度
- String replace(char old ,char new) 将old用new替代
- char[] toCharArray 将字符串转换成字符数组
- String toLowerCase() 将字符串内的字符改写成小写
- String toUpperCase() 将字符串内的字符改写成大写
- String valueOf(Boolean b) 将布尔方法b的内容用字符串表示
- String valueOf(char ch) 将字符ch的内容用字符串表示
- String valueOf(int index) 将数字index的内容用字符串表示
- String valueOf(long l) 将长整数字l的内容用字符串表示
- String substring(int1,int2) 取出字符串内第int1位置到int2的字符串
常用方法就不再举例分析赘述,这里提一下几个注意的点:
String的==比较的是地址,equals比较的是值
String对于连接操作+的底层实现是基于StringBuffer的append
待补充更新.