java final关键字使用及面试题重点

xiaoxiao2025-12-04  8

java final关键字使用及面试题重点

1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。2.java 面试题final关键字知识点,例题

1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。

final修饰类:(俗称太监类不能有孩子) 提高安全性,提高程序的可读性 这个类就不能被继承。如:String类、StringBuffer类、System类 //class SubString extends String{ // //} final class A{ } //class B extends A{ // //} final修饰方法:(确定下功能,没有被子类重写的必要) 不能被子类重写。如:Object的getClass();功能已经确定下来,就算子类重写了该方法后,也是实现一样的功能,所以没有必要被子类重写。 class C{ public final void method1() { System.out.println("I am method1"); } } class E extends C{ public void method1() { // System.out.println("I am method1 for D"); // } } final修饰属性:(已经是常量) 此属性就是一个常量,一旦初始后,不可再被赋值。习惯上,重用大写字符表示。 此常量在哪里赋值:①此常量不能使用默认初始②可以显示的赋值、代码块、构造器 注:显示赋值和代码块赋值只能有其中的一个 变量用static final修饰:全局常量,如Math类的PI public class Test { public static void main(String[] args) { C c = new C(); System.out.println(c.getClass()); System.out.println(Math.PI); } } class D{ // final int I;//常量不能使用默认的赋值 final int I = 11; final double PI; final String NAME; public void m1(){ System.out.println(I); // I = 10; } { PI = 3.14; } public D() { NAME = "DD"; } public D(String name) { this(); // NAME = "DD"; } } //c

付:后续需要知道final 与 finally finalize()区别

Object.finalize()//辣鸡回收的,显示把内存中对象清理掉

2.java 面试题final关键字知识点,例题

排除错误例题一 /* * 错误,调用方法的时候已经对x进行赋值,不能再对其进行++操作。 */ public class Something { public int addOne(final int x) { return ++x; } } 排除错误例题一 /* * 正确,因为final修饰的类,但++的却是其对象,说明类属性改变,类不一定跟着改变 */ public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { o.i++; } } class Other { public int i; }
转载请注明原文地址: https://www.6miu.com/read-5040334.html

最新回复(0)