基础知识还挺有趣的哈,真的理解了才算记住了。
比如String为什么不可变?StringBuffer和StringBuilder以及String的区别?
从网上看到的答案都大同小异,我自己的理解是从现实生活的角度去理解这个题。
不可变:
首先String是房子,而Stringbuffer(红色房车)和Stringbuilder(绿车房车)是两辆房车,首先房子(String)是不可以移动的,因为打了地基,想要移动就得重新建造。而红色房车和绿色房车因为都是车,又可以载人又可以当成房子最主要的还可以移动。
然后再结合网上的答案想想,还真是这样豁。
线程安全:
由于房子是不可以在公路上跑,所以是安全的。而红色房车和绿色房车都是车,所以他们有很多共同的功能,比如可以加油等等,而开红色车的人比较爱护这辆车,平时在路上跑也比较注意,所以是安全的。而开绿车的人和爱飙车容易出事故,所以不太安全。
性能:房子不能移动所以只能重新建造,然后建造好了还要告诉别人这是我的家,而红色车房车都可以移动就没这种烦事,在相同路上跑的情况下绿色房车会比红色车快10%~15%,但是容易出现事故。
以上只是个人理解,不对的地方请指教。😃