JAVA基础之十-不常用但是又希望能看懂的关键字/生存字
对于绝大部门JAVA工程师而言,大部门的关键字也是可以大概看懂的,但还是相称一部门比力不常见的关键字,妨碍了代码阅读。本文力图收集一些个人认为在CRUD机械工作中大概比力少见的一些关键字/生存字。
此类关键字主要用于修饰方法和类。
收集过程会连续一段时间,现在临时没有时间也没有必要找出个人为人需要整理的,只会遇到就更新一下。
一、概述
需要注意的是,差别的版本中,关键字包含的内容不是一样的。
大体而言:
[*]随着版本的发展,关键字越来越多
[*]增长的幅度不定,有的版本还是相称克制的,甚至大概有些版本没有出现新的关键字;有的版本会新增许多
[*]大部门的关键字,在java1.0的时间已经确定下来
如果想知道具体有哪些,最好阅读官方的文档,地址是:https://docs.oracle.com/javase/specs/index.html
当前有从6~23有关版本的文档。
我们看下几个关键版本的关键字差别
JAVA8
https://img2024.cnblogs.com/blog/1177268/202410/1177268-20241014155056408-811732069.png
50个。
JAVA17
https://img2024.cnblogs.com/blog/1177268/202410/1177268-20241014154817793-861543358.png
67个,注意下划线也算,比J8多了很多
JAVA23
https://img2024.cnblogs.com/blog/1177268/202410/1177268-20241014154613326-345751816.png
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
示例:
assert 1!=1:"1等于1";https://img2024.cnblogs.com/blog/1177268/202410/1177268-20241015162245222-1971038102.png
这个东西有助于开发调试。
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) {
}
}
例二、注解
@Target({ ElementType.FIELD })@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = {ValidMessage.class})@Documentedpublic @interface ValidIsPositive { String message() default ""; Class[] groups() default { }; Class
页:
[1]