Java_关键字

来源:互联网 发布:淘宝网牛皮钱包男士 编辑:程序博客网 时间:2024/04/28 02:55

Java关键字如下:

abstractdefaultifprivatethisbooleandoimplementsprotectedthrowbreakdoubleimportpublicthrowsbyteelseinstanceofreturntransientcaseextendsintshorttrycatchfinalinterfacestaticvoidcharfinallylongstrictfpvolatileclassfloatnativesuperwhileconstfornewswitch continuegotopackagesynchronized 

以上是java specifications中定义的keywords,一共48个,其中常见的三个看似是关键字的true, false, null,都不是关键字,而是作为一个单独标识类型。

其中,不常用到的关键字有:const,goto,native,strictfp,transient,volatile。

const和goto为java中的保留字。

native

简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 

标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。

strictfp

strictfp, 即 strict float point (精确浮点)。
strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。
如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp。

transient

变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。

volatile

就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。

final

final可以修饰非抽象变量非抽象方法,非抽象类

final修饰的类:

  • final类不能被继承
  • final类中的变量和方法默认是final的

final修饰的变量:

  • final变量即常量,不可被赋值
  • final变量(如果不是private的)可以被继承

final修饰的方法:

  • final方法(如果不是private的)可以被继承
  • final方法不可以被复写

(private方法默认是final的,因为private方法不可以被继承,不可以被复写。但是你可以对private方法增加final修饰符,但是这并没有意义)

static

static是在内存中分配一块区域,供整个类使用。也就是说,不管这个类有多少个实例,这些实例的static类型的变量都是共用的。

static定义的变量和方法也可以直接通过类来调用,不需要通过类的一个实例来调用。

static可以修饰变量方法代码块。(static修饰类比较特殊,static不可以修饰外部类,只可以修饰内部类)

this和super

  1. this代表本对象,super代表父对象
  2. 调用本/父对象的属性和方法可以通过this./super.的形式
  3. 调用本/父类的构造方法可以用this()/super()的形式(注意:这两种形式只能出现在构造方法首行
  4. 静态方法中不能使用this和super。因为静态方法是类方法,不和类的具体实例打交道,而this和super是代表的对象实例。

overide和overload

Override:

重写

发生在父类和子类之间,子类重写父类的方法

方法的名称、参数、返回值要一模一样

Overload:

重载

发生在同一个类中

方法的名称一样,参数的个数、类型、顺序不一样

(注意:返回值、方法的作用域不一样的方法不叫Overload,否则编译报错

原创粉丝点击