1、final修饰成员变量

  即该成员被修饰为常量,意味着不可修改。

  对于值类型表示值不可变;对于引用类型表示地址不可变

其初始化可以在三个地方

  ①:定义时直接赋值

  ②:构造函数

  ③:代码块{}或者静态代码块static{}

  

  1. import java.util.Arrays;
  2. public class Test {
  3. public static void main(String[] args) {
  4. FinalDemo f=new FinalDemo();
  5. }
  6. }
  7. class FinalDemo{
  8. //定义时复制
  9. final int[] arr={1,2,3,4,5};
  10. final int a;
  11. //在代码块中初始化a
  12. {
  13. a=1;
  14. }
  15. final static double PI;
  16. //在静态代码块中初始化PI
  17. static{
  18. PI=3.141592653;
  19. }
  20. final int b;
  21. public FinalDemo(){
  22. //在构造函数中初始化b
  23. b=2;
  24. //因为数组是引用类型,这里arr[2]=10并没有改变引用类型地址,只是改变地址所对应的值
  25. arr[2]=10;
  26. System.out.println(Arrays.toString(arr));
  27. System.out.println(a);
  28. System.out.println(b);
  29. System.out.println(PI);
  30. }
  31. }
  32.  
  33. 结果为:
  34. [1, 2, 10, 4, 5]
  35. 1
  36. 2
  37. 3.141592653

2、final修饰局部变量

  ①:直接赋值

  ②:先声明在赋值

  【注意】:在使用前当且仅当只能赋值1一次

  

  1. public class Test {
  2. public static void main(String[] args) {
  3. FinalDemo f=new FinalDemo();
  4. }
  5. }
  6. class FinalDemo{
  7. public FinalDemo(){
  8. final int a;
  9. final int b=2;
  10. a=1;
  11. System.out.println(a);
  12. System.out.println(b);
  13. }
  14. }

3、final修饰方法

   final修饰方法表示该方法不可被重写

4、final修饰类

  final修饰类表示该类不可被继承

11、final详解的更多相关文章

  1. Linux0.11信号处理详解

    之前在看操作系统信号这一章的时候,一直是云里雾里的,不知道信号到底是个啥玩意儿..比如在看<Unix环境高级编程>时,就感觉信号是个挺神奇的东西.比如看到下面这段代码: #include& ...

  2. 【小白学PyTorch】11 MobileNet详解及PyTorch实现

    文章来自微信公众号[机器学习炼丹术].我是炼丹兄,欢迎加我微信好友交流学习:cyx645016617. @ 目录 1 背景 2 深度可分离卷积 2.2 一般卷积计算量 2.2 深度可分离卷积计算量 2 ...

  3. final详解

    final的含义? final:java中的关键字,意为“终态的”或者“无法改变的”.可用来修饰类.变量.方法. 变量(成员变量.静态变量.局部变量) 注意: 1.final变量即为常量,通常常量名大 ...

  4. Java容器解析系列(11) HashMap 详解

    本篇我们来介绍一个最常用的Map结构--HashMap 关于HashMap,关于其基本原理,网上对其进行讲解的博客非常多,且很多都写的比较好,所以.... 这里直接贴上地址: 关于hash算法: Ha ...

  5. java关键字native、static、final详解

    native: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可 ...

  6. Acunetix 11 配置详解

    Acunetix 扫描配置 Full Scan– 使用Full Scan来发起一个扫描的话,Acunetix会检查所有可能得安全漏洞. High Rish Vulnerabilities–这个扫描选项 ...

  7. Jmeter 常用函数(11)- 详解 __TestPlanName

    如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 返回测试计划名称 语法格式 ${__T ...

  8. Appium自动化(11) - 详解 Applications 类里的方法和源码解析

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 Applications 类 ...

  9. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

随机推荐

  1. How to Make Portable Class Libraries Work for You

    A Portable Class Library is a .NET library that can be used (in binary form, without recompiling) on ...

  2. HDU5087 Revenge of LIS II (LIS变形)

    题目链接:pid=5087">http://acm.hdu.edu.cn/showproblem.php?pid=5087 题意: 求第二长的最长递增序列的长度 分析: 用step[i ...

  3. WCF服务端调用client.

    wcf服务端 1,新建一个"windows窗口程序"名称为WCFServer2. 2.然后加入一个"WCF服务"名称为Service1. 详细步骤为:解决方式试 ...

  4. 使用route add添加路由,使两个网卡同时访问内外网

    route add命令格式:route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if I ...

  5. Cisco KVM Console无法打开

    前阵子手贱, 每次弹出的Java的update的对话框我都是直接关闭的, 那天实在是不忍再受骚扰, 升级到了Java 8. 结果Cisco的KVM就死活打不开了, 报错如下: Exception: c ...

  6. Eclipse上传代码到GitHub

    平时工作学习中难免会在Github搜索一下开源的Android代码, Android系统本身的代码就是托管在GitHub上,如果平时随手做了一个Demo,托管在云盘感觉不入流,如果平时自己一时兴起写了 ...

  7. 基于Packet Tracer 组建智能公司局域网

    背景及要求                                                                                               ...

  8. Hive分析窗体函数之LAG,LEAD,FIRST_VALUE和LAST_VALUE

    环境信息:Hive版本号为apache-hive-0.14.0-binHadoop版本号为hadoop-2.6.0Tez版本号为tez-0.7.0 创建表: ),第三个參数为默认值(当往上第n行为NU ...

  9. mysql时间操作函数和存储过程

    因为业务须要统计一批数据.用到关于mysql的时间操作函数和存储过程,问题已经基本解决.把过程记录下: 1. mysql的语句中不支持直接用循环.循环仅仅能在存储过程中使用. 2. 写为文件时,注意一 ...

  10. bash參考手冊之六(Bash特性)

    6 Bash 特性 这部分描写叙述Bash独有的特性. *  调用Bash : Bash能够接受的命令行选项. *  Bash启动文件 : Bash何时及怎样运行脚本. *  交互Shell : 什么 ...