Java面向对象高级【final关键字的使用】

简介: Java面向对象高级【final关键字的使用】

简介

final 是Java中的一个修饰符,声明 final 方法的主要目的是防止该方法的内容被修改,final 是一个重要的Java语法,对于阅读源码和代码的理解很有帮助 !

1. final的单词理解:最终的,所以一旦被final修饰,就基本不能改变了

2. final可以用来修饰的结构:类、方法、变量

2.1 final修饰类,表示此类不能被继承。

     比如:String、StringBuilder、StringBuffer

2.2 final 修饰方法,表示方法不能被重写 。

      比如: Object类的getClass()方法

2.3 final修饰变量:既可以修饰成员变量,也可以修饰局部变量。此时的 “变量” 其实已经变成了 “常量” ,意味着一旦赋值,就不可更改。

2.3.1 final 修饰成员变量:被 final 修饰的成员变量只允许3种赋值方式:

  - 显式赋值
  - 代码块赋值
  - 构造器赋值
  这3种方法都是一旦赋值,不可更改,其中由于一个构造器将来可以构造一个对象,
  所以在一个构造器中赋值后同样不能修改,但是允许多个构造器的。

2.3.2 final 修饰局部变量:一旦被赋值就不能修改

  • 方法内声明的局部变量:在调用局部变量前,一定要赋值,而且一旦赋值,就不可更改
  • 方法的形参:在调用此方法时给形参赋值,一旦赋值,就不可更改

3. final 与 static 搭配:修饰成员变量时,兼具两者的特点,全局常量。

比如:Math.PI

相关文章
|
1天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
1天前
|
存储 安全 Java
聊聊Java关键字synchronized(下)
聊聊Java关键字synchronized(下)
5 0
|
1天前
|
监控 安全 Java
聊聊Java关键字synchronized(上)
聊聊Java关键字synchronized
5 0
|
3天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
3天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
8 0
|
4天前
|
安全 Java 编译器
是时候来唠一唠synchronized关键字了,Java多线程的必问考点!
本文简要介绍了Java中的`synchronized`关键字,它是用于保证多线程环境下的同步,解决原子性、可见性和顺序性问题。从JDK1.6开始,synchronized进行了优化,性能得到提升,现在仍可在项目中使用。synchronized有三种用法:修饰实例方法、静态方法和代码块。文章还讨论了synchronized修饰代码块的锁对象、静态与非静态方法调用的互斥性,以及构造方法不能被同步修饰。此外,通过反汇编展示了`synchronized`在方法和代码块上的底层实现,涉及ObjectMonitor和monitorenter/monitorexit指令。
18 0
|
4天前
|
Java
两千字讲明白java中instanceof关键字的使用!
两千字讲明白java中instanceof关键字的使用!
12 0
|
4天前
|
Java 开发者
Java基础知识整理,注释、关键字、运算符
在日常的工作中,总会遇到很多大段的代码,逻辑复杂,看得人云山雾绕,这时候若能言简意赅的加上注释,会让阅读者豁然开朗,这就是注释的魅力!
37 11
|
8天前
|
安全 Java 机器人
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
19 0
|
9天前
|
安全 Java 开发者
Java并发编程:深入理解Synchronized关键字
【4月更文挑战第19天】 在Java多线程编程中,为了确保数据的一致性和线程安全,我们经常需要使用到同步机制。其中,`synchronized`关键字是最为常见的一种方式,它能够保证在同一时刻只有一个线程可以访问某个对象的特定代码段。本文将深入探讨`synchronized`关键字的原理、用法以及性能影响,并通过具体示例来展示如何在Java程序中有效地应用这一技术。