关键字属于保留字,在 Java 中具备特殊的含义,好比说 public、final、static、new 等等,它们不能用来做为变量名。为了便于你做为参照,我列举了 48 个经常使用的关键字,你能够瞅一瞅。java
abstract 关键字用于声明抽象类——能够有抽象和非抽象方法。
abstract修饰符用来修饰类和成员方法web
1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。 2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具备什么功能,但不提供具体的实现。
abstract 规则:多线程
1:抽象类能够没有抽象方法,可是有抽象方法的类必须定义为抽象类,若是一个子类继承一个抽象类,子类没有实现父类的全部抽象方法,那么子类也要定义为抽象类,不然的话编译会出错的。 2:抽象类没有构造方法,也没有抽象静态方法。可是能够有非抽象的构造方法 3:抽象类不能被实例化,可是能够建立一个引用变量,类型是一个抽象类,并让它引用非抽象类的子类的一个实例
public class TestAbstract{ public static void main(String[] args){ MyClass mc ; mc = new Sub(); // 强制使用多态 mc.m1(); mc.m2(); mc.m3(); } } //抽象类 abstract class MyClass{ int a; // 属性 public void m1(){ System.out.println("m1()..."); } public abstract void m2(); abstract public void m3(); } // 子类 class Sub extends MyClass{ public void m2(){ System.out.println("m2()实现内容..."); } public void m3(){ System.out.println("m3()...实现内 容.../"); } } 1.若是一个类继承抽象类,此类为抽象类的子类 2. 若是子类不想定义为抽象类,必须覆盖父类中全部的抽象方法,不然子类必须定义为抽象类。 3. 抽象类类名 引用名 = new 子类类名(形参);
boolean 关键字用于将变量声明为布尔值类型,它只有 true 和 false 两个值。
Boolean和boolean的区别svg
boolean是基本数据类型
Boolean是它的封装类,和其余类同样,有属性有方法,能够new,例如:
Boolean flag = new Boolean("true"); // boolean 则不能够!
Boolean 是boolean 的实例化对象类,和Integer对应int同样
自jdk1.5.0以上版本后,Boolean在"赋值"和判断上和boolean同样,
便是你: boolean b1 = true ; 或者 Boolean b2 = true ; 均可以。
惟一只能使用Boolean上的就是从列表或者哈希表获取值时。
好比 :函数
boolean t = false; Map map = new HashMap(); map.put("t", t);
那么获取值时只能用
Boolean t1 = (Boolean) map.get(t); //前面只能用Boolean强制转换,不能使用boolean.this
break 关键字用于中断循环或 switch 语句。
①只能在循环体内和switch语句体内使用break;
②当break出如今循环体中的switch语句体内时,起做用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,能够在循环体中,但并不在switch语句中设置break语句,知足某种条件则跳出本层循环体。spa
for(int i=0;i<month;i++) { switch(i) { case 1: sumday+=31; break; case 2: sumday+=29; break; case 3: sumday+=31; break; case 4: sumday+=30; break; case 5: sumday+=31; break; case 6: sumday+=30; break; case 7: sumday+=31; break; case 8: sumday+=31; break; case 9: sumday+=30; break; case 10: sumday+=31; break; case 11: sumday+=30; break; case 12: sumday+=31; break; } } break后跳出switch 可是还在for里
byte 关键字用于声明一个能够容纳 8 个比特的变量。
byte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),可以存储的数据范围是-128~+127。线程
Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装code
Byte能够将对象的引用传递,使得多个function共同操做一个byte类型的数据,而byte基本数据类型是赋值以后要在stack(栈区域)进行存储的;xml
在java中包装类,比较多的用途是用在于各类数据类型的转化中。
好比,如今byte要转为String
byte a=0; String result=Integer.toString(a);
使用泛型时
List<Integer> nums; 这里<>须要类。若是你用int。它会报错的
case 关键字用于在 switch 语句中标记条件的值。
JDK1.7版本以前,case语句只支持可转换为int型的类型(byte ,short,char,int(其余的都不能够))和枚举类型的数据变量;(char能够转换成int)
String input = "Monday"; String output = null; switch(input){ case "Monday": output = "星期一"; break; case "Tuesday": output = "星期二"; break; case "Wednesday": output = "星期三"; break; case "Thursday": output = "星期四"; break; case "Friday": output = "星期五"; break; case "Saturday": output = "星期六"; break; case "Sunday": output = "星期日"; break; default: throw new IllegalArgumentException("无效的输入参数:" + input); } System.out.println(output); //输出:星期一
catch 关键字用于捕获 try 语句中的异常。
char 关键字用于声明一个能够容纳无符号 16 位比特的 Unicode 字符的变量。
class 关键字用于声明一个类。
continue 关键字用于继续下一个循环。它能够在指定条件下跳过其他代码。
default 关键字用于指定 switch 语句中除去 case 条件以外的默认代码块。
do 关键字一般和 while 关键字配合使用,do 后紧跟循环体。
double 关键字用于声明一个能够容纳 64 位浮点数的变量。
else 关键字用于指示 if 语句中的备用分支。
enum(枚举)关键字用于定义一组固定的常量。
extends 关键字用于指示一个类是从另外一个类或接口继承的。
final 关键字用于指示该变量是不可更改的。
finally 关键字和 try-catch 配合使用,表示不管是否处理异常,老是执行 finally 块中的代码。
float 关键字用于声明一个能够容纳 32 位浮点数的变量。
for 关键字用于启动一个 for 循环,若是循环次数是固定的,建议使用 for 循环。
if 关键字用于指定条件,若是条件为真,则执行对应代码。
implements 关键字用于实现接口。
import 关键字用于导入对应的类或者接口。
instanceof 关键字用于判断对象是否属于某个类型(class)。
int 关键字用于声明一个能够容纳 32 位带符号的整数变量。
interface 关键字用于声明接口——只能具备抽象方法。
long 关键字用于声明一个能够容纳 64 位整数的变量。
native 关键字用于指定一个方法是经过调用本机接口(非 Java)实现的。
能够将native方法比做Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,而后编译;
2、用javah产生一个.h文件;
3、写一个.cpp文件实现native导出方法,其中须要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态连接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态连接库文件,这个native()方法就能够在Java中被访问了。
new 关键字用于建立一个新的对象。
若是一个变量是空的(什么引用也没有指向),就能够将它赋值为 null。
package 关键字用于声明类所在的包。
private 关键字是一个访问修饰符,表示方法或变量只对当前类可见。
protected 关键字也是一个访问修饰符,表示方法或变量对同一包内的类和全部子类可见。
public 关键字是另一个访问修饰符,除了能够声明方法和变量(全部类可见),还能够声明类。main() 方法必须声明为 public。
return 关键字用于在代码执行完成后返回(一个值)。
short 关键字用于声明一个能够容纳 16 位整数的变量。
static 关键字表示该变量或方法是静态变量或静态方法。
/** * 说明:静态变量内存分析举例 * * @author huayu * @date 2018/8/3 */ public class Cat { //静态成员变量,就算不new对象它也会在data seg里面保存一份,它属于整个类 //不属于某个对象。int静态变量能够用来计数。 //对静态值访问:1.任何一个对象经过对象的引用均可以访问这个静态对象,访问的时候都是同一块内存 //2.即使是没有对象,也能够经过 类名. 来访问 如:System.out out是个静态变量 1. private static int sid=0; //非静态成员变量 new对象的时候在堆内存对象中保存,每new一个对象产生一块 2. private String name; //非静态成员变量 new对象的时候在堆内存对象中保存,每new一个对象产生一块 3. private int id; public Cat(String name) { 4. this.name = name; 5. id=sid++; } public void info(){ 6. System.out.println("My name is "+name+" No."+id); } public static void main(String[] args) { //静态变量sid属于整个Cat类,不属于某个对象,能够用类名.来访问,因此这儿没有new任何对 //象,直接用类名.(Cat.sid)来访问的。 7. Cat.sid=100; //字符串常量分配在data seg 8. Cat mimi=new Cat("mimi"); 9. Cat pipi=new Cat("pipi"); 10. mimi.info(); 11. pipi.info(); } } 打印结果: My name is mimi No.id=100 sid= 102 My name is pipi No.id=101 sid= 102
strictfp 关键字并不常见,一般用于修饰一个方法,确保方法体内的浮点数运算在每一个平台上执行的结果相同。
super 关键字可用于调用父类的方法或者变量。
switch 关键字一般用于三个(以上)的条件判断。
synchronized 关键字用于指定多线程代码中的同步方法、变量或者代码块。
this 关键字可用于在方法或构造函数中引用当前对象。
throw 关键字主动抛出异常。
throws 关键字用于声明异常。
transient 关键字在序列化的使用用到,它修饰的字段不会被序列化。
try 关键字用于包裹要捕获异常的代码块。
void 关键字用于指定方法没有返回值。
volatile 关键字保证了不一样线程对它修饰的变量进行操做时的可见性,
即一个线程修改了某个变量的值,这新值对其余线程来讲是当即可见的。
若是循环次数不固定,建议使用 while 循环。