
皮总,今天面试遇到了最基本的问
皮总,今天面试遇到了最基本的问题,突然让我有了一个思考。String字符串为什么不可变?只是因为final修饰吗?网上简单的回答是的。我是思考,final修饰了String类,也修饰了char数组,那是那个原因呢?我觉得是都是原因,不能只说一个,不然设计者也不会这样设计吧。final修饰了char数组,数组不是引用类型吗?那只是地址不变呀,内容也能变呀。他应该是本身是private,没有公共方法去改变,而且final修饰的类不能被继承,所以才不变的吧。 new String(“去玩儿”)生成了两个对象,一个在字符串常量池,一个在堆里。博客都说是堆里指向常量池,那堆里是常量池的地址吗?还是一个一模一样的副本呢?今天面试官说不变的原因也跟常量池有关,我这里没找到好的解释,麻烦皮哥解答一下。
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
