1.String
String类代表字符串,Java程序中所有双引号字符串,都是String类的对象
字符串的特点
- 字符串不可变,它的值在创建后不能被改变。
- 虽然String的值不会改变,但可以共享。
- 字符串效果相当于字符数组(char[]),但是底层原理是字节数组(byte[])。
String 构造方法
方法名 | 说明 |
---|
public String() | 创建一个空白字符串对象,不好有任何内容 | public String(char[] chs) | 根据字符数组的内容,来创建字符串对象 | public String(byte[] bys) | 根据字节数组的内容,来创建字符串对象 | String s = “abc” | 直接赋值的方式创建字符串对象,内容是abc |
String 对象的特点
- 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但地址不同。
char[] chs = {'a','b','c'};
String s1 = new String(chs);
String s2 = new String(chs);
- 上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参数的字符串内容是相同的。
- 以 “” 方式给出的字符串,只要字符序列相同(顺序和大小写),无论程序中出现多少次,JVM都只会建立一个String对象,并在字符串池中维护。
字符串的比较
使用 == 作比较
- 基本类型:比较的是数据值是否相同。
- 引用类型:比较的是地址值是否相同。
字符串是对象,比较内容用 equal()方法
字符串遍历
public char charAt(int index); 返回指定索引处的char值
2.StringBuilder
StringBuilder概述
StringBuilder是一个可变的字符串类,可以看做是一个容器,内容可变。
- String:内容不可变。
- StringBuilder:内容是可变的。
StringBuilder的构造方法
方法名 | 说明 |
---|
public StringBuilder() | 创建一个可变的字符串对象,不含任何内容 | public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
StringBuilder的添加和反转方法
方法名 | 说明 |
---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 | public StringBuilder reserve() | 返回相反的字符序列 |
StringBuilder和String的相互转换
public String toString():通过toString()就可以实现把StringBuilder转换为String
public StringBuilder(String s):通过构造方法可以实现将String转换为StringBuilder。
|