一、博客概述
1.本章博客主要从几个方面简要/详细介绍Java关键字,从分类、定义、基本用法、应用场景及‘为什么被设计'。
2.为了建立统一的认识,首先说明几个概念:Java及关键字是什么?
可能Java大家用了这么久,都可能觉得没有必要说明概念,但是往往每个人的理解不一样,资深人士称之为编程工具、专业人士称之为编程语言,非行业人士称之为Java语言。
为了降低人理解的差异性,统一将Java定义为用来支持业务流程,业务往来,业务对象进行业务合作的制作应用软件的一门技术性语言,统一为应用语言(核心思想:就是拿来用的语言)。
关键字是什么 ? 从非专业性和专业性定义:
非专业性:关键字是应用语言中的核心单词,用来构建整个整个语言中的核心模块。
专业性: 属于编程语言中变量的一个分类,根据Java编译器能理解的变量称之为特殊变量(关键字、保留字均可以)
二、参考博客
https://www.cnblogs.com/chenglc/p/6922834.html 【java关键字及作用】
https://baike.baidu.com/item/java%E5%85%B3%E9%94%AE%E5%AD%97/5808816?fr=aladdin【Java关键字,百度百科】
三、关键字分类
1. Java编程语言中关键字有多少个?
50个关键字 (方便记忆进行分类记忆)
2.根据关键字的核心含义进行分类:
包相关 | import | packege | assert | |
---|---|---|---|---|
基本类型 | byte | short | int | long |
boolean | char | float | double | |
变量引用 | super | this | void | |
继承相关 | extends | implements | ||
类、方法、属性 | enum | class | abstract | interface |
final | static | strictfp | native | |
new | synchronized | transient | volatile | |
访问控制 | public | private | protected | default(缺省) |
异常控制 | try | catch | throw | throws |
程序控制 | if | else | switch | case |
while | do | for | back | |
continue | default | return | instanceof | |
保留字 | goto | const |
1.抽象性关键字:enum / class / abstract / interface (4个)
2.访问权限关键字:public / protected / 默认 (空白不写) != default / private (4个)
3.本身、数据类型关键字:this / super / short / byte / int / long / boolean / char / float / double / void (11个)
4.结构关键字:if / if-else / if-else if- else/ for / while / do-while / switch - case / break / continue (9个)
5.数据结构的顺序关键:默认是从上往下,从左往右依次执行
6.异常处理关键字:try - catch - finally / throw / throws (4个)
7.具有关系性关键字: extends / implements / import (3个)
8.静态化、可变性关键字: static / final (2个)
9.同步方式关键字:synchronization / volatile (2个)
10.其他关键字:transient / strictfp / packege / new / native / goto / const / assert / default / instanceof / return (11个)
三、常用关键字的基础知识
1.抽象性:enum/class/abstract/interface (4个均为常用的关键字,包含@interface 声明注解类型)
(1) enum/class基础知识及核心用法
enum是枚举类型,列举的含义。根据该概念的集合是否有穷,划分为enum/class。
如果可以根据知识体系,划分至底层,则用enum描述,否则,用class进行声明数据类型。
class是类类型,一类事物的含义。描述同上,不再赘述。
核心用法:enum
// 简单的声明一个枚举类型
public enum SimpleEnum{
PEOPLE(0,"人"),
BOOK(1,"书"),
MONERY(2,"钱);
private Integer key;
private String value;
public SimpleEnum(Integer key,String value){
this.key = key;
this.value = value;
}
//get/set方法自行创建,已省略...
}
// 定义系统权限枚举类型
public enum SystemRoleEnum{
//从外部定义系统权限(可访问权限和不可访问权限)
ACCESS(0,"可访问权限"),
NOT_ACCESS(1,"不可访问权限"),
//从内部定义系统权限
// 1.登陆用户可访问的菜单权限;
NAVICATE(2,"菜单访问权限"),
BUTTON(3,"按钮访问权限"),
ADD_BUTTON(4,"添加按钮访问权限"),
REMOVE_BUTTON(5,"移除按钮访问权限"),
// 2.资源访问权限;
GLOBAL_RESOURCE(6,"全局资源访问权限"),
PART_RESOURCE(7,"局部资源访问权限"),
STATIC_RESOURCE(8,"静态资源访问权限"),
// 3.文件读/取权限;
FILE_READ_ROLE(9,"文件读取权限"),
FILE_WRITE_ROLE(10,"文件写入权限"),
// 4.文件下载权限等次列举
FILE_DOWNLOAD_ROLE(11,"文件下载权限");
private Integer key;
private String value;
public SystemRoleEnum(Integer key,String value){
this.key = key;
this.value = value;
}
// 自行添加Setter/Getter函数
}
核心目的:为了存储通用的概念集合,均统一定义在枚举中。
(题外话: 好的业务系统架构,通常在数据库表结构中进行定义且至多一张表来定义)
为什么被设计? 在早期的的数据库设计,Web应用不太流行时,Enum被广泛的运用在C/S模式应用中,为C/S模式的应用程序/服务器提供了很好的支撑。
要点分析:1.早期条件:数据库表设计不够优秀,在不同的实现中,对多个概念集合映射进行大量的文档描述。
要点问题:1.对于应用系统开发过程中,人员替换容错率高;2.为了系统可以适应不同的场景,需要修改大量的代码,造成后期维护过重的问题。
解决方案:引入枚举类型的概念,基于这样的概念,降低了系统开发容错率及修改较少的代码,提高兼容性。
核心用法:class
基于不同的人理解,不再此赘述常识。
(2) abstract/interface 基础知识及核心用法
abstract 是?
interface是?
核心用法:abstract
核心用法:interface
3)访问控制
1) private 私有的
private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。
2) protected 受保护的
protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、方法或字段。
3) public 公共的
public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。 可能只会在其他任何类或包中引用 public 类、方法或字段。
四、冷门关键字
五、深度分析设计的目的
六、总结归纳
创作阶段:初稿
创作日期:2019年3月2日
更新日期:2019年3月24日