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关键字,编译不会报错,但在内部类中修改变量,编译会报错。

最新文章

  1. [LeetCode] Decode String 解码字符串
  2. 手写一个allocator
  3. kendo ui简介
  4. 打磨程序员的专属利器——命令行&界面
  5. Linux 动态监听进程shell
  6. row_number()over(order by id) SQL顺序排列
  7. c++ 简单的词法分析
  8. 【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])
  9. ACdream 1728 SJY's First Task
  10. 转:eclipse 设置Java快捷键补全
  11. LeetCode第十六题-找出数组中三数之和最接近目标值的答案
  12. O(n*logn)级别的算法之二(快速排序)的三种实现方法详解及其与归并排序的对比
  13. BigDecimal源码
  14. 基于DES加密的服务端分析
  15. Exploit-Exercises nebule 旅行日志(二)
  16. 【PYTHON】 Missing parentheses in call to 'print'
  17. PMM安装-第一篇
  18. android studio 汉化 svn插件汉化。布局文件 属性 汉化 public.xml
  19. python threading acquire release
  20. Validation in jQuery

热门文章

  1. SpringSecurity权限管理系统实战—二、日志、接口文档等实现
  2. AS在安装GitHub时出现错误:Empty git --version output:
  3. SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt
  4. dotnet cli
  5. 关于haar特征的理解及使用(java实现)
  6. getting session bus failed: //bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
  7. 原生js实现 vue的数据双向绑定
  8. 焦大:SEO重思录(上)收录量和收录率的重新定位
  9. k8s-1.15.0集群部署+dashboard
  10. 安装Android Studio之后无法直接打开SDK Manager