Java的关键字final

简介: Java的关键字final

Java的关键字final

@[toc]

final的使用
  • final可以用来修饰的结构:类、方法、变量
  1. final 用来修饰一个类:此类不能被其他类继承。比如:String类、System类、StringBuffer类
  2. final 用来修饰方法:表明此方法不可以被重写。比如:Object类中的getClass()
public final void AA(){}
  1. final 用来修饰变量:表示这个变量此时已经是一个常量

3.1、final修饰属性,可以考虑的赋值的位置有:显式初始化、代码块中初始化、构造器中初始化(如果有多个构造器,那么每个构造器都需要去赋值)、

public class FinalTest {
        final int a=3;
        final int b;
        final int c;
    {
        b=1;
    }
    public FinalTest(){
        c=2;
    }
}

3.2、final修饰局部变量:当final修饰形参时,表面此形参是一个常量。当调用此方法时,给这个常量形参赋值,一旦赋值以后,就只能在方法体内使用此形参,但不能重新赋值。假日修饰的是普通变量,就变成一个常量,不能再进行操作

  • static final可以用来修饰:属性、方法

修饰属性:全局常量(通常大写)

修饰方法:情况较少


练习题:排错
 public class Something {
        public int addOne(final int x) {
            return ++x;
// return x + 1;
        }
    }

解释:这样用是错误的,因为已经用final修饰了x就不能再修改,但是++x对x进行了自增,改变了x,如果改成注释掉的就是正确的,因为返回x+1并未对x进行操作,只是返回一个数值

public class Something {
    public static void main(String[] args) {
        Other o = new Other();
        new Something().addOne(o);
    }
    public void addOne(final Other o) {
// o = new Other();
        o.i++;
    }
}
class Other {
    public int i;
}

解释:这里的是没错的,因为final是针对o的,但是o.i++不影响,但是如果用注释了的语句,就会错误,因为又换了一个对象,改变了o

目录
相关文章
|
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关键字与方法的重写和继承【易错点】
23 5
|
1月前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
35 0
Java中 final、finally、finalize 有什么区别?
|
1月前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
195 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
1月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
了解final关键字在Java并发编程领域的作用吗?
|
1月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
30 0
|
1月前
|
安全 Java 编译器
了解final关键字在Java并发编程领域的作用吗?
【10月更文挑战第8天】在Java并发编程中,`final`关键字具有重要作用,包括保证变量的可见性和不可变性,防止对象引用被意外修改,并帮助编译器优化读取操作及消除不必要的同步。通过确保变量不可变,`final`增强了多线程环境下的安全性与性能。
|
3月前
|
前端开发 JavaScript Java
【前端学java】java中final修饰符(6)
【8月更文挑战第9天】java中final修饰符(6)
39 2
|
3月前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
497 1