您的位置:首页 > Web前端

Effective Java(使可变性最小化)

2017-09-21 17:23 169 查看
使可变性最小化


首先来了解下什么是不可变的对象,最为常见的就是String类,这个类大家都清楚是不可变的,至于为什么在赋值过后还能对它进行赋值那是因为在常量池中又定义了一个常量使得引用指向了这个新的常量,而不是在原有值的基础上做修改。

对于final关键字,我想很多人对于它的用法基本上是处于以下用法:

private static final String NAME="LiSi";

把它和static关键字配合使用使得程序中不会出现硬编码,而是以常量的形式出现,这样也便于修改和阅读,但是final的功效远远不止于此。

  以下是final的常见用法:

  1、 用final关键字修饰类,使得该类不可以被继承。例如String类就利用final修改使得它不可以被继承。

  2、 用final关键字修饰成员变量,使得该变量变为不可变的对象引用,此时应该给它赋初值,之后它不能被重新赋值,准确来讲是它的引用不可改变。注意是引用不可改变,不代表被引用的对象内部不能改变,如果引用的对象本身是一个引用类型例如:
private Student stu = new Student();

stu.setName(“kevin”);

stu.setName(“ylf”); //这是合法的
//stu = new Student(); //这不合法,因为它改变了stu的引用

3、 比较通用的就是开篇提到的和static配合使用定义常量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: