- String是final类,不能被其他的类继承
- String 有属性private final char value[];用于存放字符串,其实还是按照字符串存储的。(value是final类型,一旦赋值,不可以修改,这里的修改是指他的地址。即value不能改变指向的数组地址,但是它的内容可以改变)
- intern()方法的作用:返回的是常量池的地址。(注意两点:常量池的地址)
若是字符串常量池中不存在这个字符串,那么,就创建一个引用,把该字符串实例对象的引用复制过来,并返回该地址。
若是字符串常量池中已存在该字符串,那么直接返回该字符串的地址。 - 小插曲:人民币升值了,我就想去买买买,若是出国消费的话,我就想去买美国的东西,有利于进口,人民币升值,对应美元贬值,就是说美元不值钱了,那美国佬就不想花高价钱买我们的东西,就不利于出口,而我们国家的经济的发展主要是考出口赚外汇和投资驱动的(目前来看的话)
String c1 = "ab" + "cd";
//常量相加,看的是池
String c1 = a + b;
//变量相加,看的是堆。
- final修饰引用数据类型表示其中的地址不可更改,值还是可以更改的。与第二点相对应。
- 数组就是直接放堆里面了,要是字符串的话,我们必须要知道字符串是存放在常量池中的,此时堆中存放的也是地址,这个地址指向常量池。那个对象是指向堆的。调用一个方法就要开辟一个临时的栈。