Java关键字

来源:互联网 发布:程序员专用网名 编辑:程序博客网 时间:2024/04/29 11:58
1、访问控制
private protected public


2、类,方法和变量修饰符
abstract class extends final implements interface native new
static strictfp synchronized transient volatile

注意:
(1)extends(继承),类只能单继承,但是接口可以多继承
(2)implements只能用于类实现接口,必须实现所有的接口
(3)final关键字:
A、final修饰类,表示此类不允许扩展(即子类)
B、final修饰方法,表示此方法不能被重写
a. 使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。
b. 在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来
的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了

c. 类的private方法会隐式地被指定为final方法
C、final修饰变量
a. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;
b. 如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象(但是其中的值可以改变)。

D、final和abstract不能同时修饰类,abstract要求必须可以进行扩展,而fianl则限制扩展,矛盾

E、深入理解final
a. 当用final作用于类的成员变量时,成员变量必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了
b. 局部变量只需要保证在使用之前被初始化赋值即可
c. final和static一起可以修饰常量
d. 匿名内部类中使用的外部局部变量只能是final变量,如下例子中变量a必须是final
public static void main(String[] args) {
final String a = "hello2";
new Foo(){
@Override
public void test() {
System.out.println(a);
}
};
}

在jdk8中已经不做此限制

(4)native调用非Java语言实现的方法,本地方法
(5)static保证修饰的变量在类中只有一个副本,所有的实例共享
A、修饰类的时候只能是内部类(定义在类中的类)
B、修饰方法,表示为类方法(多为工具方法)
C、可以用类直接调用,而不用首先实例化类
(6)strictfp, 即 strict float point (精确浮点)
A、strictfp关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范
B、当对一个类或接口使用 strictfp关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算
    (7)transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化
(8)volatile修饰成员变量,轻量级的同步操作,参考虚拟机相关部分



3、程序控制
break continue return do while if else for instanceof switch case default

注意:
(1)instanceof判断对象所属的类


4、错误处理
try catch throw throws


5、包相关
import package


6、基本类型
boolean byte char double float int long short null true false


7、变量引用
super this void

注意:
(1)super
A、super()表示调用父类的构造器,必须在构造器的第一行调用
B、super.父类方法(表示调用父类的方法,调用顺序没有限制)


8、保留字
goto const
0 0
原创粉丝点击