可以将实例域定义为 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. 安装centos 7 桌面
  2. SQL分页语句(转)
  3. React-Native 使用真机和指定模拟器调试
  4. android 2.2.3,升还是不升 Android2.2与2.3性能测试对比
  5. NOI模拟题4 Problem C: 填格子(board)
  6. 锯木棍(51Nod-2143)
  7. 函数 php_PHP丨PHP基础知识之PHP基础入门——函数「理论篇」
  8. android 自带TextToSpeech没有声音
  9. Moment js 计算时间差
  10. wifi微信连不到服务器,微信连不上wifi怎么办?
  11. 计算飞机票价格python_Python 带你薅羊毛:手把手教你揪出特价机票信息
  12. ggplot2---绘制地图
  13. VS2015程序出现缺少dll文件解决方法
  14. 三菱FX3U与欧姆龙E5CZ温控器485通讯案例
  15. 在地图上可视化地理空间数据的12种方法
  16. BlankDTX9Window - DirectX9c 程序的模板[原创]
  17. html两张图片无缝连接,如何实现两张图片的无缝结合
  18. 尚硅谷前端项目开发笔记
  19. 子集和数问题-----易懂
  20. 魔方软件测试自学,魔方练习APP

热门文章

  1. 五十一、创建第一个Maven项目和pom.xml 详解
  2. 七十七、SpringBoot整合Rabbitmq
  3. 十六、爬虫实战,多线程抓取毛豆新车的数据
  4. 第三届“达观杯”文本智能算法大赛参赛指南
  5. window中osmnx包的详细安装过程
  6. Spring Boot Admin:微服务应用监控
  7. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
  8. vsc提示只有一行_Solution:连续调用BAPI出错,以及BAPI提示成功但数据库没有数据...
  9. java培训学费_参加java培训大概的费用是多少钱?
  10. java download oracle,Oracle Java Products Download