String的不可变性的缘由引见【JAVA教程】,java
作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:27评论:0
导读:本篇文章给人人带来的内容是关于String的不可变性的缘由引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。在猫眼的口试中被口试官问到为何String的字...
本篇文章给人人带来的内容是关于String的不可变性的缘由引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。
在猫眼的口试中被口试官问到为何String的字符串是稳定的。当时我的回覆是由于String类是用final症结字润饰的,当被问到为何用 final润饰就是不可变的时刻我发明本身说的并没有什么原理。今后本身特地查了一下为何。
String的稳定性,如下图所示,当你转变了s的今后s指向了一个新的对象原对象不做转变。
看一下源码是怎样完成的:
我们看到String被定义为final,所以说String是不可继续的,接着我们看到String的内部完成是一个char数组,而且定义为final。这时候有些人能够以为final润饰的字段建立今后就不可转变,所以就完了,但实在不是如许的。
由于虽然value是不可变,也只是value这个援用地点不可变。但其援用的Array数组是可变的。
final int[] value={1,2,3}; value[2]=100; //这时候刻数组里已是{1,2,100}
所以根本上String是不可变的缘由是sun工程师很好的封装了value数组,在其中所有的要领中不去变动value数组,并把它定义为private,而且把悉数String设成final制止继续,防止被其他人继续后损坏。所以String的不可变性的症结并非final的作用。
同时Java编写者为了防止由于String的不可变性致使占用大批空间,为此设想了字符串常量池
String one = "someString"; String two = "someString";
本篇文章到这里就已悉数完毕了,更多其他精彩内容能够关注ki4网的Java视频教程栏目!
以上就是String的不可变性的缘由引见的细致内容,更多请关注ki4网别的相干文章!
标签:java
相关推荐
- java经典面试题集锦(五)_JAVA教程,java,面试题
- java中的换行符是什么_JAVA教程,java,换行符
- Java中变量必须先定义后使用么_JAVA教程,java,变量
- java中怎么定义接口_JAVA教程,java,接口
- java中静态代码块有什么特点_JAVA教程,java,静态代码块
- java中return语句有什么作用_JAVA教程,java,return
- Java对文件的读写操作(图文详解)_JAVA教程,java
- java经典面试题集锦(四)_JAVA教程,java,面试题
- 八种基本数据类型分别是什么?_JAVA教程,java,基本数据类型
- java如何将字符串转为数组_JAVA教程,java,字符串,数组
你 发表评论:
欢迎- JAVA教程排行
-
- 1接口中只能定义常量和抽象方法,对么_JAVA教程,接口,常量,抽象方法
- 2java中sleep的用法是什么?_JAVA教程,java,sleep
- 3Java中变量必须先定义后使用么_JAVA教程,java,变量
- 4java中的换行符是什么_JAVA教程,java,换行符
- 5Java如何获取字符在字符串中的位置_JAVA教程,Java,字符,字符串
- 6java经典面试题集锦(五)_JAVA教程,java,面试题
- 7java中静态代码块有什么特点_JAVA教程,java,静态代码块
- 8equals()函数与“==”的作用分别是什么_JAVA教程,equals(),==
- 9continue语句的作用是什么_JAVA教程,continue,作用
- 最新文章
- 广而告之