String字符串中的字符使用Unicode字符,一个字符(不论是字母还是汉字)编码占两个字节
常用的构造器
String类实现了Serializable,Comparable接口,因此可以串行化和对象比较
String有属性private final char[] value 用于存放字符内容,因此String不可被修改【final修饰符约束的value字符数组是其字符串的内存地址不会被修改,即不能指向其他字符串内存地址,但是可以修改单个内容】,证明如下:
创建String字符串的两种方式和区别:
①String s = "kk";
②String s = new String("kk");
区别:
第一种方式,先从常量池中查看是否有“kk”数据空间,如果有直接指向,如果没有则在常量池中创建对象,然后指向,s最终指向的是常量池中的内存地址
第二种方式,现在堆中创建空间,里面维护了value属性,指向常量池的“kk”内存地址空间&#x