问题描述:Java有50个关键字,许多和C/C++是类似的,以下列出这些关键字和比较少见的关键字的一些说明。

  50个关键字:



abstract assert boolean break byte case



catch char class const continue default



do double else enum extends final



finally float for goto if implements



import instanceof int interface long native



new package private protected public return



short static strictfp super switch synchronized



this throw throws transient try void



volatile while



  比较少见的关键字的说明:



  1. abstract



  用来声明一个抽象类,该类不能被实例化,类是不占内存的。抽象类可以被继承,可以有抽象方法。



  2. assert



  C/C++中有这个assert的,在标准库中许多地方都用到,表示断言。java中意思也差不多,用法有两种:



(1)assert ----若为true程序继续执行



                       



(2)assert <错误信息表达式>



----若为true程序继续执行



----若为false,程序抛出java.lang.AssertionError,并输入<错误信息表达式>



  3. final



  用final修饰一个只能定义一次的实体,具体:一个final修饰的类不能被继承,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。当然,在final修饰时都需要初始化。



  4. finally



  执行一段代码,不管在前面定义的try语句是否异常或运行时错误发生。



  5.instanceof



  用来测试第一个参数的运行时类型是否和第二个参数兼容。



  6. native



    将一个方法做为一个本地方法的,就必须声明改方法为native的,并且不能实现。用于JNI编程。



 7. strictfp



 



 8.  synchronized



  这个关键字代表给方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其他正在用这个方法的线程B(或C、D),有的话要等正在使用这个方法的线程B(或C、D)运行完这个方法后再运行此线程A。它包括两种用法,synchronized方法和synchronized块。



  9. throw



  允许用户抛出一个exception对象或者任何实现throwable的对象。



  10. throws



  用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。



  11.transient



  用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。



  12.volatile



  C/C++中有防止被编译器优化的功能,java中用法也类似,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。



  说明:以上内容为简要的说明,更详细的内容需要参考更详细的书籍或文档,最好能设计实例进行测试。