#1 Final

2024-08-30 10:32
文章标签 final

本文主要是介绍#1 Final,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于final的重要知识点
1、final关键字可以用于成员变量、本地变量、方法以及类。
2、final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。
3、当final修饰基本类型及String变量时无法再次赋值,当修饰引用类型时保证引用对象不变,但是对象内部数据变化是被允许的,即修饰数组、对象、集合等引用类型时都可以修改内部数据。
4、本地变量必须在声明时赋值。
5、在匿名类中所有变量都必须是final变量。
6、final方法不能被重写。
7、final类不能被继承。
8、final关键字不同于finally关键字,后者用于异常处理。
9、final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。
10、接口中声明的所有变量本身是final的。
11、final和abstract这两个关键字是反相关的,final类就不可能是abstract的。
12、final方法在编译阶段绑定,称为静态绑定(static binding)。
13、没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化。不这么做的话,编译器会报错“final变量(变量名)需要进行初始化”。
14、将类、方法、变量声明为final能够提高性能,这样JVM就有机会进行估计,然后优化。在早期的JDK版本中JVM会把final修饰的短方法进行内联的确会对性能有所提升,但是现代虚拟机例如Hotspot通过JIT即时编译来进行优化而不是单纯地依赖于代码中是否用final修饰了方法去判断
15、按照Java代码惯例,final变量就是常量,而且通常常量名要大写
16、很多时候会容易把static和final关键字混淆,static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变关于final的扩展
1、匿名内部类所有变量为什么都必须是final修饰的?
2、final修饰方法到底能不能提升性能?

 

参考文章:

http://www.importnew.com/tag/final

匿名类中所有变量必须声明为final的原因参考以下两篇文章

https://blog.csdn.net/f641385712/article/details/80355490

https://www.cnblogs.com/dolphin0520/p/3811445.html

这篇关于#1 Final的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120564

相关文章

【HDU】3986 Harry Potter and the Final Battle 最短路

传送门:【HDU】3986 Harry Potter and the Final Battle 题目分析:先求一次最短路,同时记录在最短路上的顶点以及以该顶点为弧尾的最短路上的边。然后枚举删除每一条边,分别求一次最短路,其中最大的即答案。当然不可达输出-1。 测试发现堆优化的dij不如slf优化的spfa。。可能图太稀疏了吧。。。反正我觉得我写的挺搓的了。。。 代码如下:

JBoss AS 7.1.1.Final 安装

JBoss AS 7.1.1.Final下载地址:http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip localhost:9990/console 用户root 密码 1234 安装参考:http://my.oschina.net/thinker4self/blog/273527

final_封装_多态_servletJAVA043-047

来源:http://www.bjsxt.com/ 1、S01E043_01final修饰变量、方法和类 (1)修饰变量:常量; (2)修饰方法:该方法不可被子类重写,但可以被重载; (3)修饰类:修饰的类不能有子类,不能被继承。如:Math、String。 2、S01E044_01面向对象三大特性之一:封装/隐藏(encapsulation) (1)封装的作用:隐藏对象内部的复杂性,只

《从C/C++到Java入门指南》- 25.final 关键字

final 关键字 final 变量 final变量可以理解为C++中的const,变量一经定义无法修改。 public class Main {public static void main(String args[]) {final double PI = 3.1415926;System.out.println(PI);// PI = 3.14; // 尝试修改会报错}} fina

插件开发遇到的坑------final 型变量,编译过程被优化

android 插件开发遇到的坑 今天遇到一个坑,pdf 插件,调用了主工程的一个静态final 字符串,但是主工程里面已经没有这个字符串了,却没有崩溃。 后来同事说,因为字符串可能已经直接被写死了。你应该看下编译后的代码。我一同事,反编译apk 之后,发现,果然,因为provide 的jar 里面是有这个final 的字符串的,java 编译的时候,直接用死的值替换掉了。这样,

问:final关键字在JAVA中有哪些用法?

final关键字的问题在面试中很常见,深入理解其背后的机制确实能提升对Java语言特性的掌握程度。下面,代码示例来说明final的用法。 1. 被final修饰的类不可以被继承 final class FinalClass {// 类内容}// 错误示例:尝试继承FinalClass// class SubClass extends FinalClass {// } 2. 被fina

【再回顾面向对象】,关键字Satic、final

再回顾面对对象 object:所有类的祖先,所有类的方法 GC:垃圾回收站 一般不会回收对象——Car c = new Car(); toString() Hashchde要跟地址对应 尽量不要自己产生跟指针不一样,指针是直接指向地址像是数组的索引找的时候可能会有相同的hashcode,所以再加上equals比较哦**对象是如何存储的?**重点x如图: 指针是一把”双刃剑“。

Java中继承、final、抽象类

一、继承 1,概述       多个类存在相同的属性和行为时,将这些相同的内容抽取到单独一个类中,那么多个类无需在定义这些属性和行为,只要继承那个类即可。多个类可以成为子类,单独这个类可以称为子类或者超类。子类可以直接访问父类中非私有的属性和行为。 2,特点     A  Java只支持单继承,不支持多继承     B 父类有的,子类也有,而且子类可以改变(更改父类属性值、重写父类成员方

DESUtils 加解密时 Given final block not properly padded bug小记

事情的经过是这个样子的。。。。。。 先说说问题是怎么出现的。根据客户需求,需要完成一个一键登录的功能,于是我的项目中就诞生了DesUtil,但是经过上百次用户测试,发现有一个用户登录就一直报错!难道又遇到神坑啦!!发火 让我们先看看源代码,干货来了! package com.kwp.main.util.security;import java.io.IOException;import

2014 ACM-ICPC World Final Info board

现在是2014年6月26日00:07:21,同样也是2014年acm wf结束的当晚,几家欢喜几家愁,真的是不知道最近在干些什么就是懈怠了也木有以前那种干劲了,恩,这么说吧就是游戏玩起来了,暑假有时候是需要节制的否则这个暑假就这么浪费了有些可惜,着实是这么表示,而且2015年的亚洲区会在NEU举办,下面附张榜单,哎其他的就不说什么了,表示到了这个时候追悔莫及还是可以的只要不继续越陷越深就好了。缓步