对于绝大部门JAVA工程师而言,大部门的关键字也是可以大概看懂的,但还是相称一部门比力不常见的关键字,妨碍了代码阅读。
本文力图收集一些个人认为在CRUD机械工作中大概比力少见的一些关键字/生存字。
此类关键字主要用于修饰方法和类。
收集过程会连续一段时间,现在临时没有时间也没有必要找出个人为人需要整理的,只会遇到就更新一下。
一、概述
需要注意的是,差别的版本中,关键字包含的内容不是一样的。
大体而言:
- 随着版本的发展,关键字越来越多
- 增长的幅度不定,有的版本还是相称克制的,甚至大概有些版本没有出现新的关键字;有的版本会新增许多
- 大部门的关键字,在java1.0的时间已经确定下来
如果想知道具体有哪些,最好阅读官方的文档,地址是:https://docs.oracle.com/javase/specs/index.html
当前有从6~23有关版本的文档。
我们看下几个关键版本的关键字差别
JAVA8
50个。
JAVA17
67个,注意下划线也算,比J8多了很多
JAVA23
68个,比J17多了一个when
可以看到,差别的版本,有差异。
本文主要讨论截止JAVA23的部门关键字:
- assert
- default
- transient
- strictfp
- volatile
- native
- exports
- opens
- requires
- yield
- module
- permites
- sealed
- var
- provides
- to
- when
除了这些语言中的关键字(生存字),我们还会在javaDoc中看到许多专业词语,虽然使用翻译软件可以大概办理一些问题,但毫无疑问
如果可以大概直接阅读无疑能提高服从,并避免翻译过程中的曲解问题。
二、关键字细节
2.1、assert
释义:断言;见效;维护自己的权利(或权威);坚持自己的主张;明确肯定;体现坚定
说明:这个东西主要是为了辅助开发调试用的-如果条件不建立那么会终端运行。
用法:
a. assert 布尔表达式:条件不建立后的警告
b.需要在运行时间设置vm选项 -ea
示例:
这个东西有助于开发调试。
2.2、default
释义:默认
说明:
a.default关键字用于接口,从J9开始出现的,允许界说一个默认的实现
b.在注解中为属性提供默认值
示例:
例一、接口默认函数- /**
- * 接口特性示例,包含了j7~j17
- */
- public interface ITool {/**
- * @apiNote 收起来
- * 这是默认方法
- * 实现类可以覆盖,也可以不覆盖。
- * 可以调用其它四种类型的方法
- * 如果每个子类实现的都是一样的,就可以用这个。这样可以节约代码,也好维护
- * @since J8
- */
- default void putAway() {
- //调用 private static
- //decay();
- //调用 private
- //flash();
- //调用 public abstract
- //repair();
- //调用 public static
- //show();
- }
- default void putAway(String msg) {
- }
- }
复制代码
例二、注解
[code]@Target({ ElementType.FIELD })@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = {ValidMessage.class})@Documentedpublic @interface ValidIsPositive { String message() default ""; Class[] groups() default { }; Class |