来源知乎:https://www.zhihu.com/question/20618891
摘取如下:
怎么不可变?
String 不可变时因为其String类和内部的CHAR型数组都用的final去修饰,
String用final修饰时为了不能被继承
char型数组用final修饰,使得其指针不得修改指向的堆地址,但是在堆内部的数组里面时可以变换数值的。
不可变的好处:
1安全,作者举了String 和StringBuilder的例子,在平常的运用中,要牢记StringBuilder这种时传递引用的,会导致内容发生改变。
2线程安全。作者强调了HashSet'做键值的一定要还是不可变的!
又重温了一边JAVA里面堆和栈的作用。堆相当于存常量的地方,而栈是存引用的地方。
今晚决定把笔记记录在ONENOTE里面,但是在Ubuntu下面要使用onenote记录笔记的时候,因为翻不了墙,临时决定找一些能用的HOST
又因为host经常需要手动更新,所以还是在找到一个能用的host之后,连接到谷歌插件商店,去安装了科学上网插件,如今学个东西不容易啊!
/$ sudo mv /home/zs/Desktop/hosts /etc