JAVA关键字 三(类,方法和变量修饰符)

本篇关键字:abstract    class    extends    final    implements    interface    native   

                     new    static   strictfp    synchronized    transient    volatile

1.abstract

abstract关键字可以修改类或方法。abstract类可以扩展(增加子类),但不能直接实例化。                                   

abstract方法不在声明它的类中实现,但必须在某个子类中重写。

2.class    

class 关键字用来声明新的 Java 类,该类是相关变量和/或方法的集合。

类是面向对象的程序设计方法的基本构造单位。类通常代表某种实际实体,如几何形状或人。类是对象的模板。

每个对象都是类的一个实例。要使用类,通常使用 new 操作符将类的对象实例化,然后调用类的方法来访问类的功能。

3.extends    

extends 关键字用在 classinterface 声明中,用于指示所声明的类或接口是其名称后跟有 extends 关键字的类或接口的子类。子类继承父类的所有 publicprotected 变量和方法。 子类可以重写父类的任何非 final 方法。

一个类只能扩展一个其他类。

4.final    

final 关键字可以应用于类,以指示不能扩展该类(不能有子类)。                                                                               

final关键字可以应用于方法,以指示在子类中不能重写此方法。

一个类不能同时是 abstract 又是 finalabstract 意味着必须扩展类,final 意味着不能扩展类。

5.implements    

implements 关键字在 class 声明中使用,以指示所声明的类提供了在 implements 关键字后面的名称所指定的接口中所声明的所有方法的实现。类必须提供在接口中所声明的所有方法的实现。

一个类可以实现多个接口。

6.interface    

nterface 关键字用来声明新的 Java 接口,接口是方法的集合。

接口是 Java 语言的一项强大功能。任何类都可声明它实现一个或多个接口,这意味着它实现了在这些接口中所定义的所有方法。 实现了接口的任何类都必须提供在该接口中的所有方法的实现。                            

 一个类可以实现多个接口

7.new

new 关键字用于创建类的新实例。 
new 关键字后面的参数必须是类名,并且类名的后面必须是一组构造方法参数(必须带括号)。 
参数集合必须与类的构造方法的签名匹配。

8.static    

static 关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。 
通常,static 关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。
static(内部)类可以被其他类实例化和引用(即使它是顶级类)。

static 字段(类的成员变量)在类的所有实例中只存在一次。 

示例:工厂模式代码,比较全面的展示了上述关键字

https://download.csdn.net/download/qq_36110736/10493906

-------------------------------------分割线-----------------------------------------------

以下主要是native、线程、Java虚拟机相关,能力有限没有演示代码

如果有大佬有相关资料请附上链接,感激不尽

9.native    

native 关键字可以应用于方法,以指示该方法是用 Java 以外的语言实现的。

10.strictfp    

strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令人满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果想让浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。
可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字

11.synchronized   

synchronized 关键字可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护。 
synchronized 关键字可防止代码的关键代码段一次被多个线程执行。
如果应用于静态方法,那么,当该方法一次由一个线程执行时,整个类将被锁定。 
如果应用于实例方法,那么,当该方法一次由一个线程访问时,该实例将被锁定。 
如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。

12.transient    

Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient
     transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

13.volatile

volatile 关键字用于表示可以被多个线程异步修改的成员变量。

猜你喜欢

转载自blog.csdn.net/qq_36110736/article/details/80806354
今日推荐