每天一个知识点(一)final 在 java 中有什么作用?

简介: final作为Java中的关键字可以用于三个地方。用于修饰类、类属性和类方法。

微信搜索《Java鱼仔》,每天一个知识点不错过


(一)每天一个知识点


final 在 java 中有什么作用?


(二)结论


final作为Java中的关键字可以用于三个地方。用于修饰类、类属性和类方法。


特征:凡是引用final关键字的地方皆不可修改!


(1)修饰类:表示该类不能被继承;


(2)修饰方法:表示方法不能被重写;


(3)修饰变量:表示变量不能被修改。


(三)再多学一点


(3.1)修饰变量


final修饰变量后这个变量不能被修改,这个不能被修改的说法对于不同的数据类型有不同的含义。


首先对于8个基本数据类型,当使用final修饰时,初始化后这个值是不会变的。


网络异常,图片无法展示
|


如果使用final修饰引用类型数据时,表示该引用初始化后永远指向一个地址,而这个地址里的对象是可以修改的。


final User user=new User("javayz",23);
user.setAge(18);
复制代码


在上面一段代码中,用final修饰了自定义的User对象,但user对象依旧可以被修改。


(3.2)修饰方法


final修饰方法的作用是让方法无法被重写,这里没有太多额外的内容


(3.3)修饰类


当使用final修饰类的时候表明这个类不能被继承,被修饰的类所有成员方法都会被隐式地修饰为final方法。


相关文章
|
1月前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
28 3
|
1月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
在Java并发编程中,`final`关键字不仅用于修饰变量、方法和类,还在多线程环境中确保对象状态的可见性和不变性。本文深入探讨了`final`关键字的作用,特别是其在final域重排序规则中的应用,以及如何防止对象的“部分创建”问题,确保线程安全。通过具体示例,文章详细解析了final域的写入和读取操作的重排序规则,以及这些规则在不同处理器上的实现差异。
了解final关键字在Java并发编程领域的作用吗?
|
1月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
21 5
|
1月前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
30 0
Java中 final、finally、finalize 有什么区别?
|
1月前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
181 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
1月前
|
安全 Java 编译器
Java基础-知识点(二)
Java基础-知识点(二)
13 0
|
1月前
|
存储 缓存 安全
Java基础-知识点(一)
Java基础-知识点(一)
17 0
|
1月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
了解final关键字在Java并发编程领域的作用吗?
|
1月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
28 0
|
1月前
|
安全 Java 编译器
了解final关键字在Java并发编程领域的作用吗?
【10月更文挑战第8天】在Java并发编程中,`final`关键字具有重要作用,包括保证变量的可见性和不可变性,防止对象引用被意外修改,并帮助编译器优化读取操作及消除不必要的同步。通过确保变量不可变,`final`增强了多线程环境下的安全性与性能。