一、String类的体系图
简单解释:1、String类实现了Serializable接口,说明String类可以串行化,可以进行网络传输。2、String类实现了Comparable接口,说明String对象可以进行比较。
二、String类介绍
String类是lang包中的类,即java.lang.String类。
下面代码中的注释,详细介绍了String类。
package com.hspedu.Wrapper;
public class String01 {
public static void main(String[] args) {
//1.String对象用于保存字符串
//2.字符串中的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节
//3.String类有很多构造器,形成构造器的重载
//4.String类实现了Serializable接口,说明String类可以串行化,可以进行网络传输。
//5.String类实现了Comparable接口,说明String对象可以进行比较。
//6.String类是final类,不能被其他的类继承
//7.String有属性private final char value[];用于存放字符串内容
//8.注意value是final类型,不可以修改(这里指的是value指向的地址不可以修改,而Value中的字符内容可以修改)
String name = "jack";
}
}
三、创建String对象的两种方式
1、直接赋值
String s = "hsp";
流程:
先从常量池中查看是否有"hsp"数据空间,如果有,s直接指向该空间;如果没有则重新创建,然后再指向。不管怎样,s最终指向的是常量池的空间地址。
2、调用构造器
String s = new String("hsp");
流程:
先在堆中创建空间,里面维护了value属性,指向常量池中的hsp空间。如果常量池中没有"hsp",重新创建;如果有,直接通过value指向。不管怎样,s最终指向的是堆中的空间地址。