JAVA学习笔记
Java 关键字
下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | ||
private | 私有的 | |
protected | 受保护的 | |
public | 公共的 | |
default | 默认 | |
类、方法和变量修饰符 | ||
abstract | 声明抽象 | |
class | 类 | |
extends | 扩充,继承 | |
final | 最终值,不可改变的 | |
implements | 实现(接口) | |
interface | 接口 | |
★★★ | native | 本地,原生方法(非 Java 实现) |
new | 新,创建 | |
static | 静态 | |
★★★ | strictfp | 严格,精准 |
★★★ | synchronized | 线程,同步 |
★★★ | transient | 短暂 |
★★★ | volatile | 易失 |
程序控制语句 | ||
★★ | break | 跳出循环 |
case | 定义一个值以供 switch 选择 | |
★★ | continue | 继续 |
★★★ | default | 默认 |
do | 运行 | |
else | 否则 | |
for | 循环 | |
if | 如果 | |
★ | instanceof | 实例 |
return | 返回 | |
switch | 根据值选择执行 | |
while | 循环 | |
错误处理 | ||
★★★ | assert | 断言表达式是否为真 |
catch | 捕捉异常 | |
finally | 有没有异常都执行 | |
★★★ | throw | 抛出一个异常对象 |
★★★ | throws | 声明一个异常可能被抛出 |
try | 捕获异常 | |
包相关 | ||
import | 引入 | |
package | 包 | |
基本类型 | ||
boolean | 布尔型 | |
byte | 字节型 | |
char | 字符型 | |
double | 双精度浮点 | |
float | 单精度浮点 | |
int | 整型 | |
long | 长整型 | |
short | 短整型 | |
变量引用 | ||
super | 父类,超类 | |
this | 本类 | |
void | 无返回值 | |
保留关键字 | ||
goto | 是关键字,但不能使用 | |
const | 是关键字,但不能使用 |
注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。
Java 5 (2004 年 9 月)
Java 注解(Annotation)
Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。
作用在代码的注解是
- @Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
- @Deprecated - 标记过时方法。如果使用该方法,会报编译警告。
- @SuppressWarnings - 指示编译器去忽略注解中声明的警告。
作用在其他注解的注解(或者说 元注解)是:
1 | //定义一个注解类 |
此后的更新
- @SafeVarargs - Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
- @FunctionalInterface - Java 8 开始支持,标识一个匿名函数或函数式接口。
- @Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
Java 8 (2014 年 3 月 )
lambda表达式
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
典型示范
1 | // 使用 java 7 排序 |
- lambda 表达式的局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义)
- Lambda 表达式免去了使用匿名方法的麻烦,并且给予Java简单但是强大的函数化的编程能力。
方法引用
方法引用通过方法的名字来指向一个方法。
1 | //java 8 写法 |
函数式接口
定义函数式接口
1 |
|
JDK 1.8 新增加的函数接口:
- java.util.function https://www.runoob.com/java/java8-functional-interfaces.html
接口的默认方法(default )
1 | public interface Vehicle { |
流(Stream)
流水线式处理,以一种声明的方式处理数据