java关键字

1.常见的关键字

  • 用于定义数据类型的关键字

    class interface byte short int long float double char boolean void

  • 用于定义数据类型值的关键字
    true false null
  • 用于定义流程控制的关键字

    if else switch case default while do for break continue return

  • 用于定义访问权限修饰符的关键字

    private protected public

  • 用于定义类,函数,变量修饰符的关键字

    abstract final static synchronized

  • 用于定义类与类之间关系的关键字

    extends implements

  • 用于定义建立实例及引用实例,判断实例的关键字

    new this super instanceof

  • 用于异常处理的关键字

    try catch finally throw throws

  • 用于包的关键字

    package import

  • 其他修饰符关键字

    native strictfp transient volatile assert

2.关键字的作用说明

  • break

    用在 switch 或者循环语句中,表示中断结束的意思, 跳出循环直接可以结束该语句

  • continue

    用在循环语句中,表示中断结束的意思,不过跟 break 有区别,它是退出本次循环后继续执行下一次循环

  • return

    常用功能是结束一个方法(退出一个方法),跳转到上层调用的方法

  • interface

    接口的意思,用来定义接口。

  • static

    静态修饰符,被修饰后成员被该类所有的对象所共有。也可以通过类名调用

  • private

    权限修饰符,可以修饰成员变量和成员方法,被修饰的成员只能在本类中被访问 隐藏具体实现细节,提供对外公共访问方法,提高安全性

  • this

    当成员变量和局部变量名称一样时,需要用 this 修饰,谁调用这个方法,那么该方法的内部的this就代表谁,如果不适用 this ,那么局部变量隐藏了成员变量

  • super

    代表的是父类存储空间的标识(可以理解成父类的引用,可以操作父类的成员)

  • final

    由于继承中有一个方法重写的现象,而有时候我们不想让子类去重写父类的方法.
    这对这种情况java就给我们提供了一个关键字: final可以修饰类,变量,成员方法。
    被修饰类不能被继承;被修饰的方法不能被重写;被修饰的变量不能被重新赋值,因为这个量其实是一个常量。
    修饰基本数据类型 指的是值不能被改变;修饰引用数据类型 指的是地址值不能被改变

  • finally

    被finally控制的语句体一定会执行;特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))
    finally的作用: 用于释放资源,在IO流操作和数据库操作中会见到

  • abstract

    抽象的意思,用来修饰抽象类与抽象方法
    abstract 不能和哪些关键字共存?
    private 冲突 被private修饰的方法不能被子类继承,就不能被重写,而我们的抽象方法还需要被子类重写
    final 冲突 被final修饰的方法,不能被子类重写 , ,而我们的抽象方法还需要被子类重写
    static 无意义 因为被static修饰的方法可以通过类名直接访问,但是我们的抽象方法没有方法体,所以这样访问没有意思

  • extends

    继承的意思,通过它可以类与类之间产生继承关系。

  • implements

    实现的意思,通过它可以让类与接口之间产生实现关系。

  • instanceof

    测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据

3.重要关键字说明

3.1 instanceof

  • instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

3.2 final,finally,finalize有什么不同?

  • final可以修饰类,方法,变量
    • final修饰类代表类不可以继承拓展
    • final修饰变量表示变量不可以修改
    • final修饰方法表示方法不可以被重写
  • finally则是Java保证重点代码一定要被执行的一种机制
    • 可以使用 try-finally 或者 try-catch-finally 来进行类似关闭 JDBC连接、保证 unlock 锁等动作。
  • finalize 是基础类 java.lang.Object的一个方法
    • 它的设计目的是保证对象在被垃圾收集前完成特定资源的回收。finalize 机制现在已经不推荐使用,并且在 JDK 9开始被标记为 deprecated。
  • final 关键字深入理解
    • 可以将方法或者类声明为 final,这样就可以明确告知别人,这些行为是不许修改的。
    • 如果你关注过 Java 核心类库的定义或源码, 有没有发现java.lang 包下面的很多类,相当一部分都被声明成为final class?在第三方类库的一些基础类中同样如此,这可以有效避免 API 使用者更改基础功能,某种程度上,这是保证平台安全的必要手段。
    • 使用 final 修饰参数或者变量,也可以清楚地避免意外赋值导致的编程错误,甚至,有人明确推荐将所有方法参数、本地变量、成员变量声明成 final。
    • final 变量产生了某种程度的不可变(immutable)的效果,所以,可以用于保护只读数据,尤其是在并发编程中,因为明确地不能再赋值 final 变量,有利于减少额外的同步开销,也可以省去一些防御性拷贝的必要。

3.3 static

  • 可以用来修饰:成员变量,成员方法,代码块,内部类等。具体如下所示
    • 修饰成员变量和成员方法
      • 被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。
      • 被static 声明的成员变量属于静态成员变量,静态变量存放在Java内存区域的方法区。
    • 静态代码块
      • 静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)
      • 该类不管创建多少对象,静态代码块只执行一次.
    • 静态内部类(static修饰类的话只能修饰内部类)
    • 静态内部类与非静态内部类之间存在一个最大的区别:
      • 非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围内,但是静态内部类却没有。没有这个引用就意味着:1.它的创建是不需要依赖外围类的创建。2.它不能使用任何外围类的非static成员变量和方法。
    • 静态导包(用来导入类中的静态资源,1.5之后的新特性):
      • 这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法。
-------------本文结束,感谢您的阅读-------------
您的支持将鼓励我继续创作!!