java中的final关键字
JAVA 关键字 Final
2023-09-11 14:20:02 时间
以前学习java,只知道有final是个关键字,不知道final的含义和作用,随着知识慢慢增长,会对final关键字探索,明白其中的奥秘。
final关键字的含义
final在Java中是一个关键字,可以声明类、方法、变量(全局变量,局部变量)。一旦你将引用声明作final,你将不能改变这个引用了。
final类
使用final来修饰的类叫作final类。它们不能被继承。Java中有许多类是final的,譬如String, Interger以及其他包装类。下面是final类的实例:
package com.zlp.Demo;
public final class FinalCalss {
public void getName() {
}
}
继承final类 提示报错信息(The type TestDemo cannot subclass the final class FinalCalss)
package com.zlp.Demo;
public class TestDemo extends FinalCalss{
}
final方法
final声明的方法是不可以不能被重写
package com.zlp.Demo;
public class FinalCalss {
public final String getName() {
return "我是final方法";
}
public String getPassword() {
return "123456";
}
}
package com.zlp.Demo;
public class TestDemo extends FinalCalss{
@Override
public final String getName(){
return "cheap personal loan"; //compilation error: overridden method is final
}
@Override
public String getPassword(){
return "cheap personal loan";
}
}
final 变量
package com.zlp.Demo;
public class TestDemo {
final int i = 8 ;
public void getName(){
final int b = 10;
i = 9;// 全局变量
b = 10; // 局部变量
}
}
final关键字的好处
- final关键字提高了性能。JVM和Java应用都会缓存final变量。
- final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
- 使用final关键字,JVM会对方法、变量及类进行优化。
不可变类
创建不可变类要使用final关键字。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。不可变类有很多好处,譬如它们的对象是只读的,可以在多线程环境下安全的共享,不用额外的同步开销等等。
参考博客 http://www.importnew.com/7553.html
相关文章
- Java NIO.2 Files类的常用方法
- 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制
- Java中的关键字@Override解释
- java回调简单实现
- 【转】浅析Java中的final关键字
- Java反编译生成java文件
- 无锁环形缓冲RingBuffer的原理及Java实现
- Ubuntu安装java的几种方式以及多个JAVA版本的切换
- Java多线程同步 synchronized 关键字的使用
- Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
- 第41节:Java当中的类集框架
- Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- java什么叫面向对象?
- Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)
- 『Java练习生的自我修养』java-se进阶¹ • 初识多线程
- 【蓝桥杯Java组】Java选手做填空题时不得不会的API
- java使用jdk8的Stream来获取list集合的最小值、最大值、总和、平均数
- Java Web 并发单元测试(2)
- 全面理解Java内存模型(JMM)及volatile关键字
- Java多线程基础(一)---volatile关键字详解(并发编程特征、volatile关键字详解、volatile和synchronized区别)
- Java关键字final学习(变量、方法、类,final域重排序语义介绍)
- Java final关键字