java 常见关键字

本文详细解析了Java中的static、final和volatile等关键字的使用方式与特性,包括它们如何影响变量、方法和类的行为,以及在并发环境下volatile的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.static 作用
  • static 修饰变量 静态变量,在内存中只有一次拷贝(节省内存)。实例变量 每建一次,会有一个新的拷贝(多个拷贝,灵活)
  • static 修饰方法 静态方法,可以类名.方法调用 ,不能使用this 和super
static 方法,只能不能访问成员方法访问静态变量和静态方法
static 方法必须被实现,不能abstract
  • static 代码块 也叫静态代码块
修改静太成员变量
JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次
static 与final 一起联合使用 全局常量
static final 修饰的变量 一旦给值 不可更改
修饰的方法 不可覆盖
  • static 静态内部类
内部类上加static关键字
在非静态内部类不能使用静态成员和方法,只有静态内部类能够才能够定义静态成员变量和静态成员方法
静态内部类访问外部数据,不需要依赖外部类
static 静态导入
import static

2.final

final 修饰的变量不能被修改
final 修饰的方法只能不继承不能重写
final 修饰的类不能继承

3.volatile
volatile 修饰成员变量,保证各个线程之间读取的成员变量值一致
线程读取成员变量的值,每次都从主内存中读取成员变量的值,当成员变量有修改时,强迫将变化值写回到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值,效率较低

4.transient
transient 关键字只能修饰变量,不能修饰方法和类
被transient 修饰的变量不能被序列化,一个静态变量,不管是被transient 修饰,均不能序列化
一旦变量transient修饰,变量将不再是持久化的一部分,该变量序列化后无法获得访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值