浅浅的总结下53个java关键字

包(1-2)
import
package

import用于引入java工具包,java.lang不需要手工引入。引入import三种用法:

import java.util.List;// 单个导入
import java.util.*;// 分类导入
import static java.util.Arrays.asList;// 静态导入

package用于包定义,包类似于命名空间的概念,解决了命名冲突问题。

访问修饰(3-5)
public
protected
private

public 公共,加上这个修饰的属性和方法,可以在程序的任何其它地方访问;

protected 保护,位于public和private中间,加上这个修饰的属性和方法,只能在子类(extends)和同包下的程序访问,别的的地方不能访问。

private 私有的,和public相反,加上这个修饰的属性和方法,只允许在自己本身这个类里访问,程序的任何其它地方都不能访问;

默认缺省(不加任何修饰),缺省,位于private和protected中间,加上这个修饰的属性和方法,只能在同包下的程序访问,别的的地方不能访问。

结论是:public > protected > 默认 > private。

类、接口(6-9)
class
interface
extends
implements

class继承使用extends关键字,interface实现使用implements,允许实现多个接口,但只能继承一个父类

public class Son extends Father implements IStrong, IBrave, ISmart{

}
基本数据类型(10-21)
boolean
char
byte
short
int
long
float
double
null
true
false
void

强制转换类型: long>int>short>byte>char>boolean,double>float

equals比较时,可能为null的值建议放在equals后边,示例如下:

    String variable = null;// variable可能为null
    if ("test".equals(variable)) {

    }

true、false用于等值比较时,不建议用”==”或”!=”作比较,以下为三种判断boolean类型值为true的方式:

    boolean bVal;

    if (bVal == true) {}// 不建议
    if (bVal != false){}// 不建议
    if (bVal) {} // 建议用法
类、方法、属性、变量修饰(22-29)
abstract
static
final
sychronized
volatile
transient
strictfp
native
下图表示类、方法、属性、变量是否能被修饰符修饰:
修饰符方法属性全局变量局部变量
abstract
static
final
sychronized
volatile
transient
strictfp
native

浅析:
1. abstract、strictfp只可用于修饰类和方法;
2. static可修饰内部类,静态方法不能访问非静态方法(需要this实例调用)[参考]
3. final修饰的类不能被继承,final修饰的方法不能被覆写,final修饰的变量不能修改引用,匿名内部类只能访问其所在方法中的final类型的局部变量;
4. sychronized与volatile均可用于线程同步,volatile保证了内存的可见性,sychronized保证了内存的可见性和原子性[参考]
5. private final修饰的方法或变量可被内部类访问;
6. transient修饰属性时,表示该属性不会被序列化(类实现Externalizable 接口时,transient关键字失效[参考]);

对象实例(30-32)
super
this
new

super指向父对象实例、this指向当前对象实例
new是一个运算符。与+、-、*、/等运算符具有相同或类似的优先级。

new关键字补充[参考]
1.创建一个Java对象需要三部:声明引用变量、实例化、初始化对象实例。
2.实例化:就是“创建一个Java对象”—–分配内存并返回指向该内存的引用。
3.初始化:就是调用构造方法,对类的实例数据赋初值。

流程控制(33-44)
if
else
for
do
while
switch
case
default
break
continue
return
instanceof

条件判断有两种实现写法:if else、switch case

    // bVal只能是布尔值
    if (bVal) {

    } else {

    // val 可以是等价整形(byte、short、int等)、字符串、枚举
    switch(val) {
        case VALUE:
        default :
    }

循环判断有三种写法:for、while、do while

    // expr中不建议写复杂表达式
    // cycle code中不建议创建实例变量,不建议try catch,不建议使用sychronized

    for (expr) {
        // TODO cycle code
    }

    while(expr) {
        // TODO cycle code
    }

    do {
        // TODO cycle code
    } while(expr)

break关键字表示中断当前循环,执行循环后的逻辑;continue关键;字表示跳过本次循环,继续下一次循环逻辑;return表示中断当前方法,直接返回。

instanceof关键字建议匹配接口,而不是具体的实现类

异常(45-49)
try
catch
finally
throw
throws

异常关键字用于异常捕捉情况,java异常类分Error和Exception,二者都继承自Throwable。Error是系统错误,不建议捕获,Exception分运行时(UnChecked)和非运行时两种。虚拟机对运行时异常有相应处理逻辑,不需要也不建议程序员处理(能偷懒为啥要装勤快);程序员只需处理非运行时异常。

throw用于方法内部抛出异常,throws用于方法向外抛出异常。

try、finally捕获异常模式,因为异常没有catch,程序报错中断,finally后逻辑不会被执行。

常用异常场景 [参考]

    try {
        // TODO code maybe throw Exception
        return expectedVal;
    } catch (XXException ex) {
        // TODO handle Exception
    } finally {
        return actualVal;
        // 错误用法,会覆盖try中return的结果
        // finally中不应该包括return语句
    }
jdk后续(50-51)
assert
enum

assert为jdk1.4新增关键字,需要在运行时候显式开启(-enableassertions或-ea)才能生效,所以与应用程序正常逻辑相关的部分不能用assert实现。[参考]

enum为java1.5新增关键字。[参考-基础][参考-深入]

保留字(52-53)
const
goto
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值