java.lang.String

来源:互联网 发布:淘宝的美工教学视频 编辑:程序博客网 时间:2024/06/07 10:23

不可被继承

public final class String    implements java.io.Serializable, Comparable<String>, CharSequence

不可被修改

用于存储具体内容的数组,该变量(value)不可改变其引用地址,但数组内的每一个元素是可以改变的,但由于String本身没有暴露任何方法且该类无法被继承,所以在实际操作中无法改变数组内的元素

/** The value is used for character storage. */    private final char value[];

使用+操作符拼接字符串,实际上会被转换为StringBuilderappend方法

intern()

jdk1.6 调用intern()时会使用equals()判断字符串常量池中是否存在值相等的对象,若存在则返回常量池中这个对象的引用,若不存在则在常量池中新增该对象后然后返回常量池中这个新增对象的引用

jdk1.7+ 调用intern()时会使用equals()判断字符串常量池中是否存在值相等的对象,若存在则返回常量池中这个对象的引用,若不存在则在常量池中添加该对象的引用然后返回这个引用

使用""的方式创建的字符串会保存在常量池中,若常量池中已存在则返回可以存在值的引用,若常量池中不存在则直接在常量池中创建该对象并返回该对象的引用

使用new String()的方式创建的字符串会在堆中创建对象

参考资料
Java技术——你真的了解String类的intern()方法吗

原创粉丝点击