Java中的访问修饰符和非访问修饰符有什么区别?

访问修饰符

访问修饰符是与类,变量,方法和构造函数一起使用以控制其访问级别的关键字。

Java中有四个访问修饰符。

  • 默认

    如果未指定访问修饰符,则将java视为默认修饰符。默认修饰符的范围仅限于包内。

  • 上市

    public修饰符的范围是可以访问任何地方,甚至可以在软件包外部访问。

  • 私人的

    private修饰符的范围是在类本身内部进行访问。

  • 受保护的

    protected修饰符的范围限制在包和所有子类中。

非访问修饰符

非访问修饰符是那些与访问级别无关的关键字,但在指定时提供特殊功能。

  • 最后

    Final关键字可以与变量,方法或类一起使用。它防止其内容被修改。当用class声明时,它防止扩展类。

  • 静态的

    静态修饰符与类变量和方法一起使用,而类变量和方法无需类的实例即可访问。静态变量只有一个存储空间。所有对象共享静态变量的单个存储。可以直接访问它们而无需任何对象。静态方法也可以声明。该main()方法是流行的静态方法。静态块也可以在main()方法之前声明并执行。

  • 抽象

    抽象可以与类和方法一起使用。抽象类永远无法实例化,其目的仅是扩展。抽象方法声明为无主体,以分号结尾。如果类包含抽象方法,则也应将其指定为抽象方法。扩展抽象类的类必须实现其所有抽象方法。

  • 已同步

    它表明该方法一次只能由一个线程访问。

  • 短暂的

    实例变量被标记为瞬态,以指示JVM在序列化包含该变量的对象时跳过该特定变量。

  • 易挥发的

    Volatile关键字用于将Java变量标记为“正在存储在主内存中”。这意味着对易失性变量的每次读取都将从计算机的主内存中读取,而不是从CPU缓存中读取,对易失性变量的写入将被写入主存储器中,而不仅是CPU高速缓存。

  • 严格

    Java中的Strictfp关键字可确保如果在浮点变量中执行操作,则在每个平台上都将获得相同的结果。