理解Java中的final关键字
2024-10-09 14:19:17
final关键字的基本用法
1. 修饰类
出于安全考虑,类无法被继承
2. 修饰方法
防止继承类修改方法
private方法会隐式指定为final方法;
3. 修饰变量
基本数据类型,初始化后不能再修改;
引用类型,不能改变引用指向;
局部内部类为什么只能访问局部final变量
public void test(final int b) {
final int a = 10;
new Thread(
new Runnable() {
@Override
public void run() {
System.out.println(b);
System.out.println(a);
}
},
"T1")
.start();
}
局部内部类访问的局部变量在编译时,对于已经明确赋值拷贝到局部内部类,变成其局部变量;如果内部类中修改了该变量,就无法保证数据一致性。添加final关键字,可以防止内部类修改;
Java 8中不加final关键字,编译不会报错,但在内部类中修改变量,编译会报错。
最新文章
- [LeetCode] Decode String 解码字符串
- 手写一个allocator
- kendo ui简介
- 打磨程序员的专属利器——命令行&;界面
- Linux 动态监听进程shell
- row_number()over(order by id) SQL顺序排列
- c++ 简单的词法分析
- 【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])
- ACdream	1728 SJY's First Task
- 转:eclipse 设置Java快捷键补全
- LeetCode第十六题-找出数组中三数之和最接近目标值的答案
- O(n*logn)级别的算法之二(快速排序)的三种实现方法详解及其与归并排序的对比
- BigDecimal源码
- 基于DES加密的服务端分析
- Exploit-Exercises nebule 旅行日志(二)
- 【PYTHON】 Missing parentheses in call to 'print'
- PMM安装-第一篇
- android studio 汉化 svn插件汉化。布局文件 属性 汉化 public.xml
- python threading acquire release
- Validation in jQuery
热门文章
- SpringSecurity权限管理系统实战—二、日志、接口文档等实现
- AS在安装GitHub时出现错误:Empty git --version output:
- SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt
- dotnet cli
- 关于haar特征的理解及使用(java实现)
- getting session bus failed: //bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
- 原生js实现 vue的数据双向绑定
- 焦大:SEO重思录(上)收录量和收录率的重新定位
- k8s-1.15.0集群部署+dashboard
- 安装Android Studio之后无法直接打开SDK Manager