zoukankan      html  css  js  c++  java
  • Java final

    1、final修饰的类不能被继承。

    2、String就是一个被final修饰的类,我们只能用,不用继承。

    3、final不仅可以修饰类,还可以修饰变量、方法,被final修饰的变量就是一个常量,只能赋值一次。

    4、注意final和finally的区别,final是修饰类或者变量,finally是在异常处理中使用,如:

    try{ }catch(){}finally{}中,finally的作用一般用于必须处理的事情,如关闭连接。

    final也是很多面试喜欢问的地方,能回答下以下三点就不错了:
    1.被final修饰的类不可以被继承 
    2.被final修饰的方法不可以被重写 
    3.被final修饰的变量不可以被改变。如果修饰引用,那么表示引用不可变,引用指向的内容可变。
    4.被final修饰的方法,JVM会尝试将其内联,以提高运行效率 
    5.被final修饰的常量,在编译阶段会存入常量池中。

    回答出编译器对final域要遵守的两个重排序规则更好:
    1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。
    2.初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序

    附加:

    final, finalize和finally的不同之处:

    final 是一个修饰符,可以修饰变量、方法和类。如果 final 修饰变量,意味着该变量的值在初始化后不能被改变。

    finalize 方法是在对象被回收之前调用的方法,给对象自己最后一个复活的机会,但是什么时候调用 finalize 没有保证。

    finally 是一个关键字,与 try 和 catch 一起用于异常的处理。finally 块一定会被执行,无论在 try 块中是否有发生异常。

  • 相关阅读:
    Python中的赋值与深浅拷贝
    Python面试题解析之前端、框架和其他
    Python面试题解析之数据库与缓存
    Python面试题解析之网络编程与并发
    Python面试题解析之Python基础篇
    2、使用rpm包安装grafana
    1、在Centos上安装Grafana
    MySQL所学所思所想
    运维感悟(信息大爆炸的时代,该学习什么来保持着我们的竞争力)
    C#.NET 中的 Timer 计时器及 3 种使用方法
  • 原文地址:https://www.cnblogs.com/hplsharenote/p/9767870.html
Copyright © 2011-2022 走看看