Java中String类为什么定义为final
来源:互联网 发布:如何提高淘宝排名 编辑:程序博客网 时间:2024/05/24 03:48
String类用final定义,表示这个类不可被修改。当我们用String定义一个“aaa”时,在再定义一个“aaabbb”时,不是在原来的内存地址中修改”aaa为“aaabbb“的,是在另外的地址上存入“aaabbb”的。个人认为,将String类定义为final,最主要的原因是保证安全。
例如执行下面的程序:
public class Test1 {public static void main(String[] args) {String s = "hello";String s1 = s + "world";System.out.println(s);System.out.println(s1);StringBuffer ss = new StringBuffer("h");StringBuffer ss1 = ss.append("w");System.out.println(ss);System.out.println(ss1);}}运行的结果为:
因为String类不可变,因此在s被赋值为hello时,再赋值world时,被存储在另外的内存地址上,所以s的值依然为hello。但是StringBuffer没有这样不可变的保护,所以会在原来的数据上进行修改,将ss的值改为hw。
0 0
- Java中String类为什么定义为final
- String类为什么被定义为final类型
- JAVA中String为final修饰类
- java中String类为什么要设计成final
- 在java中String类为什么要设计成final?
- 在java中String类为什么要设计成final?
- 在java中String类为什么要设计成final?
- 在java中String类为什么要设计成final?
- java中内部类访问局部变量为什么要定义局部变量为final
- 为什么把String类设置为final的
- Java中String为什么是final或immutable
- 为什么String被设计为final
- 通过类字面常量解释接口常量为什么只能定义为static final,类加载过程---Thinking in java
- 通过类字面常量解释接口常量为什么只能定义为static final,类加载过程---Thinking in java
- 通过类字面常量解释接口常量为什么只能定义为static final,类加载过程---Thinking in java
- String类为什么是final
- 为什么String类是final?
- String类为什么是final
- Miscellaneous | 图示理解卷积的物理意义
- CodeForces 659B Qualifying Contest(选2个人参加比赛)
- Charles简记
- 翁恺C笔记|指针
- 1005 大数加法(java写大数问题真有优势)
- Java中String类为什么定义为final
- 订餐系统:挑剔的用户,茁壮成长的软件
- 基础总结篇:Intent应用详解
- 51nod oj 1096 1108 1110距离之和最小【一维---三维中位数--水】
- 权限访问修饰符public,protected,private
- Redis集群环境搭建
- wireshark过滤规则简介
- POJ2352 Stars(树状数组 or SplayTree)
- 【51Nod】1672 - 区间交(线段树 & 贪心)