当前位置: 首页 > news >正文

JAVA并发编程之final详解

目录

1、带着BAT大厂的面试问题去理解final

2、final基础使用

2.1、修饰类

2.2、修饰方法

2.2.1、private final

2.2.2、final方法是可以被重载的

2.3、修饰参数

2.4、修饰变量

2.4.1、所有的final修饰的字段都是编译期常量吗?

2.4.2、static final

2.4.3、blank final

3、final域重排序规则

3.1、final域为基本类型

3.1.1、写final域重排序规则

3.1.2、读final域重排序规则

3.2、final域为引用类型

3.2.1、对final修饰的对象的成员域写操作

3.2.2、对final修饰的对象的成员域读操作

3.3、关于final重排序的总结

4、final再深入理解

4.1、final的实现原理

4.2、为什么final引用不能从构造函数中“溢出”

4.3、使用 final 的限制条件和局限性

4.4、再思考一个有趣的现象:


1、带着BAT大厂的面试问题去理解final

  • 所有的final修饰的字段都是编译期常量吗?
  • 如何理解private所修饰的方法是隐式的final?
  • 说说final类型的类如何拓展? 比如String是final类型,我们想写个MyString复用所有String中方法,同时增加一个新的toMyString()的方法,应该如何做?
  • final方法可以被重载吗? 可以
  • 父类的final方法能不能够被子类重写? 不可以
  • 说说final域重排序规则?
  • 说说final的原理?
  • 使用 final 的限制条件和局限性?
  • 看本文最后的一个思考题

2、final基础使用

2.1、修饰类

当某个类的整体定义为final时,就表明了你不能打算继承该类,而且也不允许别人这么做。即这个类是不能有子类的。

注意:final类中的所有方法都隐式为final,因为无法覆盖他们,所以在final类中给任何方法添加final关键字是没有任何意义的。

这里顺道说说final类型的类如何拓展? 比如String是final类型,我们想写个MyS


http://www.mrgr.cn/news/36288.html

相关文章:

  • 分享课程:VUE数据可视化教程
  • 应用层协议 --- HTTP
  • 注册安全分析报告:人民卫生音像
  • JavaScript --模版字符串用反引号
  • 三维重建的几何评价指标
  • Stable Diffusion的采样方法
  • 数值计算 --- 平方根倒数快速算法(上)
  • Chrome Cookie最大有效期
  • 问题记录:end value has mixed support, consider using flex-end instead
  • WebUI密码被锁定
  • 使用dockerfile来构建一个包含Jdk17的centos7镜像
  • 建立队列,插入队列,删除队列
  • Python 如何使用 unittest 模块编写单元测试
  • Linux:编译,调试和Makefile
  • [智能控制】【第2 章 模糊控制的理论基础】
  • 【算法】贪心+堆排序实现大根堆及标准库容器类的融合使用
  • 9.25度小满一面
  • 如何使用 python 调用 llama3 进行对话?
  • 实验19:ds18b20温度实验
  • Python文件操作