Java基础 String类|七日打卡

556 阅读2分钟

String类的概述

​ String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!

小结

  • String类表示字符串,在java程序中所有双引号的字符串都是String类的对象
  • String类在java.lang包下,所以使用的时候不需要导包

String类常用的构造方法:

  • public String() 创建一个空字符串对象 例如: ""
  • public String(byte[] bytes) 根据byte数组中的内容,来创建对应的字符串对象
  • public String(byte[] bytes, int offset, int length) 指定byte数组的范围,根据指定范围中的内容,来创建对应的字符串对象
  • public String(char[] value) 根据char数组中的内容,来创建对应的字符串对象 直接写字符串字面值也是String类对象 例如: String str = "abc"; 常用

创建字符串对象两种方式的区别

  • 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然字符串内容相同,但是地址值不同
char[] chs = {'a','b','c'};
String s1 = new String(chs);// s1字符串的内容: abc
String s2 = new String(chs);// s2字符串的内容: abc
// 上面的代码中,JVM首先会先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的
  • 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
String s3 = "abc";
String s4 = "abc";
// 上面的代码中,针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;第二行代码,则让s4直接参考字符串池中String对象,也就是说他们本质上是同一个对象

小结

  • 通过new创建的字符串对象,每一次都会新开辟空间
  • 通过""方式直接创建的字符串对象,是常量,在常量池中,只有一份