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

目录
相关文章
|
17天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
1天前
|
算法 Java 数据安全/隐私保护
【Java开发指南 | 第二篇】标识符、Java关键字及注释
【Java开发指南 | 第二篇】标识符、Java关键字及注释
11 5
|
2天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
55 2
|
3天前
|
小程序 Java 容器
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
8 0
|
3天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
6 0
|
14天前
|
Java
final 在 java 中有什么作用?
final 在 java 中有什么作用?
|
14天前
|
存储 安全 Java
【亮剑】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制
【4月更文挑战第30天】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制。`ThreadLocal`为每个线程提供独立变量副本;`Volatile`确保变量可见性,但不保证原子性;`Synchronized`实现同步锁,保证单线程执行;`Atomic`类利用CAS实现无锁并发控制。理解其原理有助于编写高效线程安全代码。根据业务场景选择合适机制至关重要。
|
14天前
|
Java 编译器
【Java探索之旅】this 关键字 解决你的成员变量困惑
【Java探索之旅】this 关键字 解决你的成员变量困惑
19 0
|
14天前
|
Java
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
7 0
|
15天前
|
Java
Java里的关键字 __final
Java里的关键字 __final