java非访问控制修饰符有哪些

Java中的非访问控制修改符用于定义成员行为,而不是访问权限。static用于创建类成员,并由所有实例共享;final表示不可变,修改变量、方法和类别分别表示常量、不可重写和不可继承;abstract用于定义抽象类和方法,需要子类实现;synchronized确保线程同步;volatile确保变量可见性;transient在序列化时忽略了字段;native声明是由本地代码实现的。这些修改符不能随意组合,如final和abstract互斥,正确使用可以提高代码的安全性和效率。

Java中的非访问控制修改符不用于控制类、方法或变量的访问权限,而是用于定义其行为或特征。以下是常见的非访问控制修改符:

static 修饰符

功能:用于创建类变量和类方法,属于类本身而不是实例。

• 内存中只有一个静态变量,由所有实例共享。 • 静态方法可以通过类名直接调用,不能访问非静态成员。 • 初始化静态数据采用静态代码块。 final 修饰符

功能:表示“最终”,不能改变。

• 修饰变量:值不能改变(常量)。 • 修饰方法:被子类不能重写。 • 修饰类:不能继承。 abstract 修饰符

功能:用于创建抽象和抽象方法。

• 抽象类不能实例化,通常包含一种或多种抽象方法。 • 抽象方法没有方法体,必须在子类中实现。 synchronized 修饰符

功能:用于线程同步,确保只有一个线程可以在同一时间执行该方法或代码块。

Word-As-Image for Semantic Typography

文字变形艺术字,文字变形形象形象字

• 可修改实例方法、静态方法和代码块。 • 主要用于多线程环境下的数据安全。 volatile 修饰符

功能:用于修改变量,以确保变量的可见性。

• 被 volatile 任何线程修改后,其他线程都可以立即看到修改后的变量。 • 不保证原子性,但避免线程从本地缓存读取过期值。 transient 修饰符

功能:在序列化过程中忽略某些字段。

• 被 transient 修改后的变量不会序列化。 • 对象反序列化时,该字段将使用默认值。 native 修饰符

功能:表示方法由本地代码(如C//)(如C//C++)实现。

• 方法没有方法体,以分号结束。 • 常用于与操作系统交互或敏感性操作。

基本上就是这些。这些修饰符不能随意组合使用,例如 final 和 abstract 不能同时修改相同的类别或方法。理解它们的用途有助于写作更安全、更高效 Java 代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值