Java-字符串_String

一、概述

1.导包说明

  • String类java.lang包下
  • 所以使用的不需要导包

2.概念

  • String类代表字符串
  • Java程序中所有的双引号字符串,都是String类的对象
  • Java程序中所有字符串文字(如:"ABC")都被实现为此类的实例

3.特点

  • 字符串不可变,它们的值在创建后不能被更改
  • 虽然String的值不可变,但是他们可以被恭喜
  • 字符串效果上相当于字符数组:char[]
  • 底层原理是字节数组:byte[]
    • jdk8及以前是字符数组,jdk9后是字节数组

二、String类_构造方法

1.说明

image


2.代码

package nsys.stringStudy;

/**
 * @Author: nsys
 * @Date: 2021-10-06 20:06
 * @Description: String_构造方法
 */
public class StringDemo01 {
    public static void main(String[] args) {
        /*
            结果:
                s1:不含任何内容
                s2:abc
                s3:abc
                s4:abc
             推荐:
                直接赋值的方式
         */

        // 创建一个空白字符串对象,不含任何内容
        String s1 = new String();
        System.out.println("s1:" + s1);

        // 根据字符数组的内容,来创建字符串对象
        char[] chs = {'a','b','c'};
        String s2 = new String(chs);
        System.out.println("s2:" + s2);

        // 根据字节数组的内容,来创建字符串对象
        byte[] bys = {97,98,99};
        String s3 = new String(bys);
        System.out.println("s3:" + s3);

        // 直接赋值的方式来创建字符串对象
        String s4 = "abc";
        System.out.println("s4:" + s4);
    }
}

三、内存空间

1.说明

通过new创建的字符串对象

  • 每一次new都会申请一个内存空间
  • 虽然内容相同,但是地址不同

通过""创建的字符串对象

  • 只要字符序列相同顺序和大小写
  • 无论在程序代码中出现几次,JVM都只会建立一个String对象
  • 并在字符串池中维护

2.图示

image

posted @ 2021-10-06 20:20  难删亦删  阅读(42)  评论(0)    收藏  举报