关键字
关键字的所有字母都为小写、不能作为标识符
总共为51+2(goto、const)个关键字
关键字 | 说明 | 功能 | 备注 |
---|---|---|---|
public | 访问权限修饰符 | 一种访问控制方式:共用模式 | 可以被该类的和非该类的任何成员访问 |
private | 访问权限修饰符 | 一种访问控制方式:私用模式 | 仅仅可以被该类的成员访问,任何非该类的成员一概不能访问 |
sprotected | 访问权限修饰符 | 一种访问控制方式:保护模式 | 仅仅可以被子类和类本身还有同一个包里的类访问 |
static | 静态修饰符 | 用在变量、方法、代码块和嵌套类上具有静态属性 | static关键字属于类,而不是类的实例 |
abstract | 声明抽象修饰符 | 可被子类继承,提供共性属性和方法;可声明为引用,更自然的使用多态 | sabstract修饰类无法独立存在,不能实例化,只能被继承,要求子类必须重写 |
final | 修饰符 | 可以修饰类,变量,方法;赋值之后,数值不能再修改了 | final修饰的方法,不让子类重写;所以final和abstract不能同时修饰一个方法 |
volatile | 变量修饰符 | 只能用来修饰变量。无法修饰方法及代码块 | volatile通过禁止高速缓存和防止指令重排序保证了可见性和有序性问题 |
extends | 继承 | 全盘继承了父类的功能;也可以重写父类的方法 | |
implements | 接口实现 | implements 关键字在 class 声明中使用,以指示所声明的类提供了在 implements 关键字后面的名称所指定的接口中所声明的所有方法的实现 | 实现一个接口就是要实现该接口的所有的方法(抽象类除外); 接口中的方法都是抽象的; 多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口; |
class | 类 | 声明新的 Java 类 | 该类是相关变量和/或方法的集合 |
interface | 接口 | 用来声明新的 Java 接口,接口是方法的集合 | 任何类都可声明它实现一个或多个接口 |
new | 新,创建 | 创建类的新实例 | 后面的参数必须是类名,类名的后面必须是一组构造方法参数(必须带括号) |
strictfp | 严格,精准 | 声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行 | 可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字 |
synchronized | 线程、同步 | 用于方法或语句块 | 为一次只应由一个线程执行的关键代码段提供保护 |
transient | 短暂 | 应用于类的成员变量 | 指出该成员变量不应在包含它的类实例已序列化时被序列化 |
break | 程序控制语句 | 跳出,中断 | 用于提前退出 for、while 或 do 循环,或者在 switch 语句中用来结束 case 块 |
continue | 程序控制语句 | 继续 | 用来跳转到 for、while 或 do 循环的下一个迭代 |
return | 程序控制语句 | 返回 | 会导致方法返回到调用它的方法,从而传递与返回方法的返回类型匹配的值 |
do | 程序控制语句 | 运行 | 用于指定一个在每次迭代结束时检查其条件的循环, do 循环体至少执行一次 |
while | 程序控制语句 | 循环 | 用于指定一个只要条件为真就会重复的循环 |
if | 程序控制语句 | 如果 | 指示有条件地执行代码块。条件的计算结果必须是布尔值 |
else | 程序控制语句 | 否则 | 总是在 if-else 语句中与 if 关键字结合使用。else 子句是可选的,如果 if 条件为 false,则执行该子句 |
for | 程序控制语句 | 循环 | 用于指定一个在每次迭代结束前检查其条件的循环 |
instanceof | 程序控制语句 | 实例 | 用来确定对象所属的类 |
switch | 程序控制语句 | 观察 | 用于基于某个表达式选择执行多个代码块中的某一个 |
case | 程序控制语句 | 返回观察里的结果 | case 用来标记 switch 语句中的每个分支 |
default | 程序控制语句 | 默认 | default 关键字用来标记 switch 语句中的默认分支 |
try | 错误处理 | 捕获异常 | 用于包含可能引发异常的语句块 |
catch | 错误处理 | 处理异常 | 用来在 try-catch 或 try-catch-finally 语句中定义异常处理块 |
throw | 错误处理 | 抛出一个异常对象 | 用于引发异常;将 java.lang.Throwable 作为参数 ;Throwable 在调用栈中向上传播,直到被适当的 catch 块捕获 |
throws | 错误处理 | 声明一个异常可能被抛出 | 可以应用于方法,以便指出方法引发了特定类型的异常 |
import | 包处理 | 引入 | 使一个包中的一个或所有类在当前 Java 源文件中可见 |
package | 包处理 | 包 | 指定在 Java 源文件中声明的类所驻留的 Java 包 |
const | 保留字 | 静态 | |
goto | 保留字 | 跳转 | |
native | 保留字 | 应用于方法 | 指示该方法是用 Java 以外的语言实现的 |
super | 变量引用 | 父类,超类 | 用于引用使用该关键字的类的超类 |
this | 变量引用 | 本类 | 用于引用当前实例 |
void | 返回类型 | 无返回值返回 | 如果想在方法中的任何地方终止执行,可以使用return后面不加任何返回值 |
boolean | 基本类型 | 布尔型 | Java 原始类型。boolean 变量的值可以是 true 或 false |
byte | 基本类型 | 字节型 | Java 原始类型。byte 可存储在 [-128, 127] 范围以内的整数值。 |
char | 基本类型 | 字符型 | Java 原始类型。char 变量可以存储一个 Unicode 字符;char 常量:\b - 空格, \f - 换页, \n - 换行, \r - 回车, \t - 水平制表符, ' - 单引号, " - 双引号, \ - 反斜杠, \xxx - 采用 xxx 编码的 Latin-1 字符。\x 和 \xx 均为合法形式,但可能引起混淆。 \uxxxx - 采用十六进制编码 xxxx 的 Unicode 字符 |
double | 基本类型 | 双精度 | Java 原始类型。double 变量可以存储双精度浮点值 |
float | 基本类型 | 浮点 | Java 原始类型。float 变量可以存储单精度浮点值 |
int | 基本类型 | 整型 | Java 原始类型。int 变量可以存储 32 位的整数值 |
long | 基本类型 | 长整型 | Java 原始类型。long 变量可以存储 64 位的带符号整数 |
short | 基本类型 | 短整型 | Java 原始类型。short 变量可以存储 16 位带符号的整数 |
null | 基本类型 | 空 | Java 的保留字,表示无值。 |
true | 基本类型 | 真 | 表示 boolean 变量的两个合法值中的一个 |
false | 基本类型 | 假 | 代表 boolean 变量的两个合法值之一 |
数据类型
1. 基本数据类型
关键字 | 说明 | 占用字节 | 默认值 | 取值范围 |
---|---|---|---|---|
byte | 字节型 | 1 | 0 | -128~127(-~-1) |
short | 短整型 | 2 | 0 | -32768~32767(-~-1) |
char | 字符型 | 2 | 0 | 汉字/数字/字符编码,只能存储一个字符 |
int | 整型 | 4 | 0 | -2147483648~2147483647(-~-1) |
float | 浮点型 | 4 | 0.0f | 3.402823e+38~1.401298e-45(e+38 :乘以10的38次方,e-45 :乘以10的负45次方) |
long | 长整型 | 8 | 0L | -9223372036854774808~9223372036854774807(-~-1) |
double | 双精度浮点型 | 8 | 0.0d | 1.797693e+308~4.9000000e-324(e+308 :乘以10的308次方,e-324:乘以10的负324次方) |
boolean | 布尔型 | 1bit or JVM | false | true 和 false |
2. 引用数据类型
引用数据类型大致包括:类、 接口、 数组、 枚举、 注解、 字符串等
类 | 名称 | 说明 | 示例 | 创建方式 |
---|---|---|---|---|
String类 | 字符串 | String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了;重新赋值只是改变存储的数据地址 | "今天", "111" |
1. String str1 = "name";//直接定义,在常量池中; 2. String str2 = new String("name");//在常量池创建后,再在堆中创建对象 |
Arrays类 | 数组 | 数组是固定长度、存储相同数据类型的一种数据结构,有索引值;数组内保存的元素可以是任意类型 | [1,2,3],["hello","word","!"] |
1. int[] its1 = new int[5]; 2.String[] strs= {"java","python","c++"}; |
Enum 类 | 枚举 | 一种特殊的类型,是一组预定义的常量 每个常量都有一个name和value | public enum Color implements Printable {WHITE("白色"), BLACK("黑色"), RED("红色");} |
3. 特殊的类型
由于null类型没有名称,因此无法声明null类型的变量或将其强制转换为null类型。也就是说这个null在Java中本设计为一种类型,这个类型可以转化为任何其它引用类型,但不能让其它引用类型强制转化为null类型;
空引用是空类型表达式的唯一可能值。这句话怎么说,拿上面的程序String a = null;此时这个null其实就是空类型表达式的值,只不过这个值只能为null。
null类型的值可以转成任何其它引用类型。
null是java中的关键字,像public 、static、final 一样区别大小写,不能写成NULL;
null可以赋值给引用变量,不能赋值给八大基本类型(byte,short,int,long,float,double,char, boolean);
数据模型
关键字 | 功能 | 说明 | 备注 |
---|---|---|---|
DAO (Data Access Object) | 数据访问对象 | 夹在业务逻辑与数据库资源中间 | 一般在 业务逻辑层(Service) 对 数据库(SQL) 的访问时使用,一般能对SQL进行操作 |
DTO(Data Transfer Object) | 数据传输对象 | 一种设计模式之间传输数据的软件应用系统 | 一般在 前端(Web) 对 控制层(Controller)进行数据传输时使用,说白了就是前端向后台提交数据 |
DO (Domain Object) | 领域对象 | 抽象出来的有形或无形的业务实体 | 一般在 业务逻辑层(Service) 对 数据库(SQL) 的 访问时 接收数据 使用。 |
VO(View Object) | 视图模型 | 显示视图模型,视图对象,用于展示层 | 一般用在业务逻辑层(Service) 对 前端(Web) 的 视图模型效果控制的展示上,说白了就是后台向前端传输数据。 |
AO(Application Object) | 应用对象 | 数据的传输过程的运载就是由AO完成 | 一般用在控制层(Controller)与 业务逻辑层(Service)层之间抽象的复用对象模型 |
BO( Business Object) | 业务对象 | 对数据进行检索和处理的组件 | 一般用在包含业务功能模块 的具体实例上,比如我们写了一个Controller、一个Service、一个DAO、一个工具类等等这一系列实例组合后能实现一些功能,这些一系列实例组合为一个组件,这个组件就是BO |
POJO( Plain Ordinary Java Object) | 纯普通Java对象 | 普通JavaBeans,是为了避免和EJB混淆所创造的简称 | 有一些属性及其getter setter方法的类,没有业务逻辑 |
PO (Persistent Object) | 持久化对象 | 数据库表中的记录在java对象中的显示状态 | 就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象 |
Entity | 实体 | 应用程序域中的一个概念 | 在计算机网络中,实体这一较为抽象的名词表示任何可能发送或接受信息的硬件或软件进程 |
Model | 概念实体模型 | 实体类和模型 | Model是计算机程序设计中有两个概念:一个是三层架构中的实体类,另一个是MVC架构中的模型。 |
View | 概念视图模型 | 视图模型 | 在MVC(模型Model-视图View-控制器Controller)模式中,View代表视图,用来解析Model带来的数据模型,以展示视图数据,View的模型觉决定了需要什么样的Model来对接,相互联系 |