一、关键字
类别 | 关键字 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
访问控制 | private私有的 | protected受保护的 | public公共的 | ||||||||||
类、方法和变量修饰符 | abstract声明抽象 | class类 | extends扩充,继承 | final最终值,不可改变的 | implements实现(接口) | interface接口 | native本地 | new新,创建 | static静态 | strictfp严格,精准 | synchronized线程,同步 | transient短暂 | volatile易失 |
程序控制语句 | break跳出循环 | case定义一个值以供switch 选择 | continue继续 | default默认 | do运行 | else否则 | for循环 | if如果 | instanceof实例 | return返回 | switch根据值选择执行 | while循环 | |
错误处理 | assert断言表达式是否为真 | catch捕捉异常 | finally有没有异常都执行 | throw声明一个异常可能被抛出 | try捕获异常包相关 | import引入 | package包 | ||||||
基本类型 | byte字节型 | short短整型 | int整型 | long长整型 | float单精度浮点 | double双精度浮点 | float单精度浮点 | char 字符型 | boolean布尔型 | ||||
变量引用 | super父类,超类 | this 本类 | void无返回值 | ||||||||||
保留关键字 | goto是关键字 | 但不能使用 | const是关键字,但不能使用 | null空 |
二、标识符
关于 Java 标识符,它必须遵循以下规则:
1、标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其它特殊字符,不能以数字开头。
2、关键字不能用作标识符。
3、标识符是大小写敏感的。
4、标识符的命名最好能反映出其作用,做到见名知意。
合法标识符举例:age、$salary、_value、__1_value。
非法标识符举例:123abc、-salary。
三、访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限:
1、default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
2、private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
3、public : 对所有类可见。使用对象:类、接口、变量、方法。
4、protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
类 | 包 | 子类 | 任意 | |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default | √ | √ | ||
private | √ |
注:
1、使用原则:尽量使用小范围
2、public 是与其他开发人员的一个契约,约定公开的东西会尽量保持稳定不变。
3、private 私有隐藏,便于修改。
4、不写修饰符,即默认default。
四、常量和变量
1、常量:
常量在程序运行时是不能被修改的,在Java 中使用 final 关键字来修饰常量。
语法: final 常量名 = 值;
final double PI = 3.1415927;
2、变量:
一个变化的量。变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用该区域的数据可以在同一类型范围内不断
语法: 数据类型 变量名 = 值;
double score = 98.5;
注:分类
1)按数据类型:
(1)基本类型(八大基本类型):
byte字节型;short短整型;int整型;long长整型;float单精度浮点;double双精度浮点;float单精度浮点;char 字符型;boolean布尔型。
(2)引用类型:
在java里面除去基本数据类型的其他类型都是引用类型。
引用类型常见的有:calss、interface、array、String、StringBuffer、ArrayList、HashSet、HashMap等。
2)按声明位置:
(1)成员变量:
实例变量(不以static修饰)
类变量(以static修饰)
(2)局部变量:
形参(方法签名中定义的变量)
方法局部变量(在方法内定义)
代码块局部变量(在代码块内定义)
面试题 :
(答案见下一篇博客面试题部分)
1.(多选题)选择Java语言中的基本数据类型( )
A. byte
B.Integer
C.long
D.String
2.(多选题)下列各项可以用作标识符的是?( )
A.String
B.Int
C.finalize
D.$ZZ
3.(多选题)从下列选项中选择正确的是( )
A.int k=new String(“aa”);
B.String str=new String(“bb”);
C.char c=74;
D.long j=8888;
上篇面试题答案:
1.我们能不能改变main()方法的返回类型?
不能,main()方法的返回类型只能是空。任何其它类型都是不能接受的。
2.我们能不能声明main()方法为非静态?
不能,main()方法必须声明为静态的,这样JVM才可以调用main()方法而无需实例化它的类。如果从main()方法去掉“static”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。
3.我们能否在Java中覆盖main方法?
不能,你不能在Java中覆盖main方法。这是因为main方法是静态方法,而在Java中静态方法在编译时会结合在一起,所以你在Java中不能覆盖静态方法。