可以将实例域定义为 final。 构建对象时必须初始化这样的域。也就是说, 必须确保在每
一个构造器执行之后, 这个域的值被设置, 并且在后面的操作中, 不能够再对它进行修改。
例如, 可以将 Employee 类中的 name 域声明为 final, 因为在对象构建之后, 这个值不会再
被修改, 即没有 setName 方法。

class Employee
{private final String name;
}

final 修饰符大都应用于基本 (primitive) 类型域,或不可变(immutable) 类的域(如果类
中的每个方法都不会改变其对象, 这种类就是不可变的类。 例如,String类就是一个不可变
的类 )。
对于可变的类, 使用 final 修饰符可能会对读者造成混乱。例如,
private final StringBuiIcier evaluations;
在 Employee 构造器中会初始化为
evaluations = new StringBuilder();
final 关键字只是表示存储在 evaluations 变量中的对象引用不会再指示其他 StringBuilder
对象。 不过这个对象可以更改:

public void giveGoldStarO
{evaluations.append(LocalDate.now() + ": Gold star!\n");
}

《Java 核心技术卷1 第10版》学习笔记------ final 关键字详解相关推荐

  1. Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)

    22.一旦获得了一个 Charset,就可以在 Java 的 Unicode 和指定的编码格式之间进行转化,下面以 GBK 和 Unicode 之间做为例子. 从 Unicode 到 GBK: imp ...

  2. 《Java 核心技术卷1 第10版》学习笔记------异常

    异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器 . 7.1.1 异常分类 在 Java 程序设计语言中, 异常对象都是派生于 Throwable 类的一个实例 . 稍后还 ...

  3. 《Java 核心技术卷1 第10版》学习笔记------ 组织继承:final类和方法【编译器优化:内联( inlining );】

    使用 final 关键字阻止继承 有时候,可能希望阻止人们利用某个类定义子类.不允许扩展的类被称为 final 类.如果在定义类的时候使用了 final 修饰符就表明这个类是 final 类. 例如, ...

  4. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  5. 《Java 核心技术卷1 第10版》学习笔记------对象克隆【对象拷贝】

    由于克隆并不太常见,而且有关的细节技术性很强,你可能只是想稍做了解,等真正需要时再深人学习. 先来回忆为一个包含对象引用的变量建立副本时会发生什么 .原变量和副本都是同一个对象的引用: Employe ...

  6. 《Java 核心技术卷1 第10版》学习笔记 ------ 泛型【进阶】

    这部分主要是结合 Java 虚拟机实现泛型的原理进一步研究如何更好的使用泛型. 8.5 泛型代码和虚拟机 虚拟机没有泛型类型对象---所有对象都属于普通类.所以编译器在编译的时候会进行类型擦除操作. ...

  7. 《Java 核心技术卷1 第10版》学习笔记 ------ 泛型【基础】

    泛型从Java SE 5.0 中开始出现,是 Java 程序设计语言从 1.0 版本发布以来,变化最大的部分. 使用泛型机制编写的程序代码要比那些杂乱地使用 Object 变量,然后再进行强制类型转换 ...

  8. 《Java 核心技术卷1 第10版》学习笔记------调试技巧

    调试器是 Eclipse . NetBeans 这类专业集成开发环境的一部分 . 在启动调试器之前, 本节先给出一些有价值的建议 . 1 ) 可以用下面的方法打印或记录任意变量的值 : System. ...

  9. 《Java 核心技术卷1 第10版》学习笔记------日志

    日志 API 的优点: 可以很容易地取消全部日志记录, 或者仅仅取消某个级别的日志, 而且打开和关闭这个操作也很容易 . 可以很简单地禁止日志记录的输出, 因此, 将这些日志代码留在程序中的开销很小 ...

最新文章

  1. 信号建模与参数估计作业重新计算
  2. linux 判断网线是否插入
  3. Boost:双图bimap与散列索引的测试程序
  4. Android源代码解析之(四)--gt;HandlerThread
  5. java调用ole ie_ActiveX (.ocx)的写法,及在IE里调用
  6. C# 调用动态链接库读取二代身份证信息
  7. 网络管理 之 Fedora Core 网络配置工具system-config-network介绍
  8. 杭电计算机2013年硕士研究生复试详解
  9. Web/前端性能优化
  10. libiconv_百度百科
  11. 梦幻西游服务器哪个区人气最多,梦幻西游大区火爆程度排名 北京一区垄断前三...
  12. 卡王。卡皇一个不为人知的密秘.必看(转)
  13. 最新机器视觉研究团队汇总
  14. 企业邮箱怎样申请注册?
  15. Buuctf 佛系青年
  16. Flash cs6 如何从FLA 文件导出sound文件
  17. 工程流体力学笔记暂记8(伯努利方程的推导)
  18. 01_Cutecharts 超级可爱的手绘版图表 (上)
  19. 基于opencv实现的手写数字识别
  20. 【软件】PID调试软件(可免费下载)

热门文章

  1. 四十六、深入Java的网络编程(下篇)
  2. 五十四、最基础的冒泡排序
  3. 华南农业大学c语言期末试题,华南农业大学珠学院C语言期末试卷.doc
  4. SimBERTv2来了!融合检索和生成的RoFormer-Sim模型
  5. 预训练永不止步,游戏问答语言模型实操
  6. 训练技巧 | 功守道:NLP中的对抗训练 + PyTorch实现
  7. Github 本周最热的 10 款「机器学习」开源项目 | PaperDaily #27
  8. POJ 3104 Drying【二分搜索】最大化最小值问题
  9. 使用promise解决回调地狱_使用Promise 解决回调地狱
  10. microsoft store打不开,提示代码是: 0x80131500,怎么解决?