字符串

字符串

    • 1 String
        • 1.1 实例化 String 对象
          • 匿名对象
          • 两种实例化方式的区别
        • 1.2 String 的内容比较
        • 1.3 字符串的内容不可改变
        • 1.4 String 类中常用方法

1 String

在 Java 中字符串属于对象,Java 提供了 String 类 来创建和操作字符串。

1.1 实例化 String 对象

// 方法1:直接赋值
String name = "GNN";

// 方法2:使用new调用String类中的构造方法
String name = new String("GNN");
匿名对象

匿名对象就是没有明确给出名字的对象。
一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用
字符串_第1张图片

两种实例化方式的区别

首先要明白一个重要概念:一个字符串就是一个 String 类的匿名对象
匿名对象就是已经开辟了堆内存空间的并可以直接使用的对象。

String str1 = "hello";

上述代码实际上就是把一个在堆中开辟好的堆内存空间的使用权给了 str1 对象。
如果一个字符串已经被一个名称所引用,则以后再有相同的字符串声明时,就不会再重新开辟空间。
字符串_第2张图片
字符串_第3张图片
字符串_第4张图片
字符串_第5张图片

1.2 String 的内容比较

对于基本数据类型可以通过 “==” 进行内容的比较,那么对于 String 呢?
字符串_第6张图片

因此,无法使用 “==” 进行字符串内容判断。那该如何 判断两个字符串的内容是否相等
利用 String 的 equals() 方法,该方法将内容进行比较。如下(初始化与上例相同):
字符串_第7张图片

1.3 字符串的内容不可改变

在使用 String 类进行操作时,一定要牢记 字符串的内容不可改变 这一重要特性,避免代码性能低。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
字符串_第8张图片


1.4 String 类中常用方法

字符串_第9张图片
其中,split 和 replaceAll 两个方法是 String 对正则表达式的支持,在使用时可以使用正则表达式进行复杂的匹配。

注意:
数组长度: A.length
字符串长度: str.length()



你可能感兴趣的:(数据结构)