可以将实例域定义为 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. sqlserver中索引优化
  2. AJPFX关于单例设计模式
  3. 微信小程序 openid及支付的若干问题解决方案
  4. 基于vuejs的移动端分页代码
  5. 正则表达式之——exec,match
  6. 消除switch语句以获得更好的代码结构
  7. BugkuCTF-Reverse题Timer(阿里CTF)
  8. 如何让两个线程交替打印整数1-100?你的答案呢?
  9. 安装oracle失败,停止在76%
  10. 手写spring事务框架-蚂蚁课堂
  11. 网易2017校招合唱团
  12. PIXI入门-PIXI文档翻译(1)
  13. 微信公众平台接口调试工具json格式不对怎么搞_一步步教你打造微信公众号文章爬虫(3)-批量下载...
  14. zblog php建站教程_开源建站程序ZBlogPHP博客安装图文教程
  15. 【Linux】su 和 sudo 命令
  16. 数值分析思考题(钟尔杰版)参考解答——第七章
  17. Python:实现骰子游戏
  18. matlab在管理学中的应用简述【一】
  19. 记住下次看小电影前一定要检查域名是不是 HTTPS 的!
  20. UDS诊断系列介绍06-22服务

热门文章

  1. No module named '__main__.demo1'; '__main__' is not a package
  2. 三十一、Scrapy爬取百度图片
  3. php贝叶斯,php – 将单个概率与朴素贝叶斯垃圾邮件过滤相结合
  4. ICLR 2022 | Transformer不比CNN强!Local Attention和动态Depth-wise卷积
  5. 直播预告 | 中国工程院院刊:信息与电子工程领域青年学术前沿论坛
  6. 如何应用AutoML加速图机器学习任务的处理?
  7. 小米知识图谱团队斩获CCKS 2020实体链指比赛冠军
  8. PyTorch必备神器 | 唯快不破:基于Apex的混合精度加速
  9. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task2:数据扩增方法
  10. 软件研发工程师转行机器学习之路