Java基础String、StringBuilder类
【摘要】 1 String类 1.1 String概括String 类 在 java.lang 包下,所以使用的时候不需要导包java程序中所有的双引号字符串,都是String这个类的对象特点:字符串 不可变 ,它们的值在创建后不可改变字符串的特点:1:字符串的内容永不可变。2:正是因为字符串不可改变,所以字符串是可以共享使用的。3:字符串效果上相当于是char[]字符数组,但是底层原理是byte[...
1 String类
1.1 String概括
- String 类 在 java.lang 包下,所以使用的时候不需要导包
- java程序中所有的双引号字符串,都是String这个类的对象
- 特点:字符串 不可变 ,它们的值在创建后不可改变
字符串的特点:
1:字符串的内容永不可变。
2:正是因为字符串不可改变,所以字符串是可以共享使用的。
3:字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
1.2 String构造方法
| 方法名 | 说明 |
|---|---|
| public String() | 创建一个空字符串对象,不包含任何内容 |
| public String(chas[] chs) | 根据字符数组内容,来创建字符串对象 |
| public String(byte[] bys) | 根据字节数组内容,来创建字符串对象 |
| String s = “abc”; | 直接赋值的方法创建字符串对象,内容就是abc |
- 推荐使用直接赋值的方式
1.3 String对象的区别
- 1.通过 new 创建字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同

- 2.以 “ ” 方式给出的字符串,只要字符串的序列相同(顺序和大小写),无论在程序中出现多少次,JVM都只会建立一个String对象,并在字符串池维护

- 内存


1.4 String字符串比较
- 使用 双等号 作比较
- 基本类型:比较的是 数据值 是否相同
- 引用类型:比较的是 地址值 是否相同
- 字符串是对象,它比较 内容 是否相同,是通过一个方法来实现的,这个方法叫做: equals()
- 范例:
public class Demo{
public static void main(String[] args){
//构造方法的方式得到对象
char[] chs = {'a','b','c'};
String s1 = new String(chs);
String s2 = new String(chs);
//直接赋值的方法得到对象
String s3 = "abc";
String s4 = "abc";
System.out.println(s1.equals(s2)); //true
System.out.println(s1.equals(s3)); //true
System.out.println(s3.equals(s4)); //true
}
}
2 StringBuilder可变字符串类
-
StringBuilder是一个可变的字符串类,内容可以改变
-
StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
-
原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
-
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理如下图所示:(默认16字符空间,超过自动扩充)
2.1 StringBuilder构造方法

- 范例
public class Demo {
public static void main(String[] args) {
//创建空白可改变字符串对象
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb); //sb:
System.out.println("sb.length():"+sb.length()); //sb.length():0
//根据字符串内容创建对象
StringBuilder sb2 = new StringBuilder("hello");
System.out.println("sb2:"+sb2); //sb2:hello
System.out.println("sb2.length():"+sb2.length()); //5
}
}
2.2 StringBuilder常用方法
| 方法名 | 说明 |
|---|---|
| public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
| public StringBuilder reverse() | 返回相反的字符序列 |
| public int length() | 返回长度(字符出现的个数) |
2.3 StringBuilder 和 String 相互转换
- 1.StringBuilder 转换为 String
| public String toString() | 通过toString()可以把StringBuilder 转换为 String |
|---|
- 2.String 转换为 StringBuilder
| public StringBuilder(String s) | 通过构造方法就可以把String 转换为 StringBuilder |
|---|
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)