在Java中 String 是属于引用数据类型,用 String 类创建的变量不会存储字符串本身,而是存放字符串所在的地址
String 类的内容是使用用 “ ”引用的,其" " 里的内容是属于常量
String 类是在 java.lang 包底下,里面包含了字符串的值和实现字符串相关操作的一些方法
String 类是不能被继承的,因为它是被 final 所修饰
在 String 类的源码里一个对象都有二个成员变量,分别是:value[ ]和 hash
value[ ] 是一个数组类型

String 类 提供的构造方法非常多,但常用的就下面三种:
public static void main(String[] args) {
// 使用常量字符串创建
String n = "hello";
System.out.println(n);
// 直接newString对象
String n2 = new String("abc");
System.out.println(n2);
//使用字符数组进行构造
char[] arr = {
'c','h','i','n','a'};
String n3 = new String(arr);//把字符数组装化成字符串
System.out.println(n3);
}
在 Java 求字符串长度是使用对象 . length()
例如:
System.out.println(n.length());
System.out.println("hello".length());
字符串是属于引用类型,不能使用 == 来判断是否相等
例如:
public static void main(String[] args) {
// 对于基本类型,可以使用 == 来判断二个变量是否相等
int a = 10;
int b = 10;
System.out.println(a == b);
// 对于引用类型变量,是不能使用 == 比较两个引用变量,它们比较的是地址,不是内容
String array1 = new String("hello");
String array2 = new String("hello");
String n = new String("world");
n = array1;
System.out.println(array1 == array2);
System.out.println(n == array1);
}
结果:

比较相等是使用 equals 来比较内容
在 String类里重写了父类Object中equals方法,Object中的 equals默认按照==比较
String重写equals方法后,按照内容进行比较
public static void main(String[] args) {
String array1 = new String("hello");
String array2 = new String("hello");
System.out.println(array1.equals(array2));
}
比较二个字符串的大小使用的是compareTo
compareTo 的返回值是整数,需要用整形变量来接收
返回大于1 的数字代表 变量1 大于 变量2
返回0 代表 二个字符串相等
返回小于0 代表 变量1 小于 变量2
例如:
public static void main(String