【Java基础】11.String类,StringBuffer和StringBuilder拼接字符串

本文详细介绍了Java中的String类,包括创建字符串的不同方法、字符串不可变性、常用API以及StringBuilder和StringBuffer的拼接性能比较。强调了在多线程环境下应选择线程安全的StringBuffer,而在单线程场景下推荐StringBuilder以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

一、String类

1.创建字符串

创建字符串最简单的方法:

String str = "Runoob";

其他创建字符串的方法:

public class StringDemo2 {
   
    public static void main(String[] args) {
   
        // 创建方法1:直接使用双引号得到字符串对象(最常用)
        String s1 = "Hello World";
        System.out.println("s1 = " + s1); // s1 = Hello World

        // 创建方法2:public String(String): 根据传入的字符串内容,来创建字符串对象(几乎不用)
        String s2 = new String("Java");
        System.out.println("s2 = " + s2); // s2 = Java

        // 创建方法3:public String(char[] c): 根据字符数组的内容,来创建字符串对象(几乎不用)
        char[] chars = {
   '我', '爱', 'J', 'a', 'v', 'a'};
        String s3 = new String(chars);
        System.out.println("s3 = " + s3); // s3 = 我爱Java

        // 创建方法4:public String(byte[] b):  根据字节数组的内容,来创建字符串对象(几乎不用)
        byte[] bytes = {
   97, 98, 99, 65, 66, 67};
        String s4 = new String(bytes);
        System.out.println("s4 = " + s4); // s4 = abcABC

    }
}

2.创建字符串的位置

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆内存上:

public class StringDemo2 {
   
    public static void main(String[] args) {
   
        System.out.println("----创建String位置(常量池、堆内存)----");
        String ss1 = "abc";
        String ss2 = "abc";
        // 相同内容在字符串常量池中只存储一份,所以引用地址相同
        System.out.println("ss1 == ss2 = " + (ss1 == ss2)); // ss1 == ss2 = true

        char[] chars1 = {
   'a', 'b', 'c'};
        // 通过构造器new对象,每次new都会产生新对象,放在堆内存中,所以引用地址不同
        String ss3 = new String(chars1);
        String ss4 = new String(chars1);
        System.out.println("ss3 == ss4 = " + (ss3 == ss4)); // ss3 == ss4 = false
    }
}

3.String常用的API

下面是 String 类支持的方法,更多方法,可以查看API文档。

public class StringAPIOtherDemo5 {
   
    public static void main(String[] args) {
   
        // 1、length(): 获取字符串的长度
        String name = "我爱你中国";
        System.out.println("变量name的长度 = " + name.length()); // 变量name的长度 = 5

        // 2、charAt(int index): 获取某个索引位置处的字符
        char c = name.charAt(1); // 0我 1爱 2你 3中 4国
        System.out.println("变量name索引1处的字符 = " + c); // 变量name索引1处的字符 = 爱

        String s1 = "Hello";
        String s2 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值