Java中的访问修饰符和非访问修饰符有什么区别?
访问修饰符
访问修饰符是与类,变量,方法和构造函数一起使用以控制其访问级别的关键字。
Java中有四个访问修饰符。
默认
如果未指定访问修饰符,则将java视为默认修饰符。默认修饰符的范围仅限于包内。
上市
public修饰符的范围是可以访问任何地方,甚至可以在软件包外部访问。
私人的
private修饰符的范围是在类本身内部进行访问。
受保护的
protected修饰符的范围限制在包和所有子类中。
非访问修饰符
非访问修饰符是那些与访问级别无关的关键字,但在指定时提供特殊功能。
最后
Final关键字可以与变量,方法或类一起使用。它防止其内容被修改。当用class声明时,它防止扩展类。
静态的
静态修饰符与类变量和方法一起使用,而类变量和方法无需类的实例即可访问。静态变量只有一个存储空间。所有对象共享静态变量的单个存储。可以直接访问它们而无需任何对象。静态方法也可以声明。该main()
方法是流行的静态方法。静态块也可以在main()
方法之前声明并执行。
抽象
抽象可以与类和方法一起使用。抽象类永远无法实例化,其目的仅是扩展。抽象方法声明为无主体,以分号结尾。如果类包含抽象方法,则也应将其指定为抽象方法。扩展抽象类的类必须实现其所有抽象方法。
已同步
它表明该方法一次只能由一个线程访问。
短暂的
实例变量被标记为瞬态,以指示JVM在序列化包含该变量的对象时跳过该特定变量。
易挥发的
Volatile关键字用于将Java变量标记为“正在存储在主内存中”。这意味着对易失性变量的每次读取都将从计算机的主内存中读取,而不是从CPU缓存中读取,对易失性变量的写入将被写入主存储器中,而不仅是CPU高速缓存。
严格
Java中的Strictfp关键字可确保如果在浮点变量中执行操作,则在每个平台上都将获得相同的结果。