java基础-final

作者: 努力做一个好人 | 来源:发表于2020-02-19 07:41 被阅读0次

final是java的一个关键字,他可以用于修饰类,方法,变量。此关键字的作用在于表明它所修饰的内容是不可改变的。

1 修饰变量

final顾名思义是最终的意思,他修饰变量意味着这个变量的值不能再更改。一个即是static又是final的常量会占据一段不能改变的内存空间。对于这样的常量,我们的命名规范是约定俗成的大写字母加下划线,如下:

private static final int TEST_FINAL = 1;

在修饰引用变量的时候,这个值是指的其引用不变,但引用的对象的内容是可变的。而在修饰基本变量如int时,则意味着这个基本类型的值不能改变。值得注意的是,final在修饰String类的对象时,其值和修饰基本变量类型是一样不能改变的。答案可以在这篇博客中找到:[Java] String类深度解析。这里不再展开。

2 修饰方法

final修饰的一个方法代表这个方法可以被继承,但是不可以被子类重写。一般对一个方法加上final关键字作为修饰,代表这个方法你认为不需要再重写和修改,而是想要确保在继承中方法的行为保持不变。

在过去,建议使用final 方法的另一个原因在于效率,final方法是在程序编译的时候就静态绑定了,但是在如今的jvm中这个速度已经可以忽略不计了。并且,也不再建议出于效率目的使用final。

此外,一个类中所有的private方法都是隐式的被指定为final 的。因此对private方法添加final关键字没有任何意义。private方法不能被取用,因此也无法覆盖。

3 修饰类

final类不能被继承,其修饰的类功能通常是完整的。

与finally区别?finally 通常用在异常处理中。异常处理可以参考这篇文章:java异常机制详解。

与finalize区别?finalize是在Object类中定义的方法,是在垃圾回收时虚拟机调用来终结对象的方法。

相关文章

  • 2018最新Java面试题

    一.基础知识篇 1.1 Java基础知识篇 final, finally, finalize 的区别 final修...

  • Java基础系列-final、finally关键字

    原创文章,转载请标注出处:《Java基础系列-final、finally关键字》 一、概述 final是Java关...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • Java基础知识汇总(一)

    Java基础知识 一.final 与 Static public static final 类常量,在类内部多个方...

  • java基础-final

    final是java的一个关键字,他可以用于修饰类,方法,变量。此关键字的作用在于表明它所修饰的内容是不可改变的。...

  • Java基础 - final

    一、为什么要使用final? final指的是"这是无法改变的"。不想改变可能出于两种理由:设计或效率。 要具体得...

  • Java问题解疑

    一. Java基础 在java中String类为什么要设计成final? ClassLoader.loadClas...

  • Java并发知识体系详解

    Java 并发相关知识体系详解,包含理论基础,线程基础,synchronized,volatile,final关键...

  • Java基础 (11) final,finally,final

    final 可以用来修饰类、方法、变量。修饰的class 代表不可继承扩展,final的变量不可更改,final方...

  • Java常见知识总结(转)

    Java总结 一、Java基础 1、String类为什么是final的。 2、HashMap的源码,实现原理,底层...

网友评论

    本文标题:java基础-final

    本文链接:https://www.haomeiwen.com/subject/okccxhtx.html