语言基础
面向对象编程思想的历程:
变量 --> 存放单一的数据,例如 int x,y; 两个int类型的变量x和y
运算符 --> 为了运算变量而设计的运算符,例如 加减乘除 + - * /
表达式 --> 变量结合运算符的运算过程的表示,例如 x+y
语句 --> 表达式的运算结果可以赋值,也可以直接拿来使用,构成语句,例如 return x+y
控制结构 --> 程序的三大结构用来控制语句的执行路线
方法/函数 --> 若干个语句组织在一起,完成某个行为动作功能,称之为方法
类 --> 将若干相关的变量,以及对这些变量进行的若干行为动作,封装在一起,称之为类
类、接口、继承
类:描述现实世界中一个客观的业务实体或者业务对象。
类的三大特性:封装、继承、多态。
多态的两种体现:方法重写、方法重载。
内部类、匿名内部类、函数式编程lambda表达式。
异常处理
泛型
泛型接口 | 泛型通配符 |
泛型类 | 泛型上界 |
泛型方法:普通泛型方法,静态泛型方法 | 泛型下界 |
泛型构造函数 | 泛型限制 |
反射
反射:是程序在运行时分析代码的能力(更贴切的说,就是“知晓类结构”信息的能力)
静态代理:静态代理要求:接口,实现该接口的两货色:真实角色,代理角色;代理角色要持有真实角色的引用。静态代理的本质是运用java的多态性的体现模式一,方法重写。
动态代理:运行时JVM动态生成内存中的代理类 $Proxy0
public class $Proxy0{
private InvocationHandler handler;
public $Proxy0(InvocationHandler handler){
this.handler = handler;
}
public void sayHello(){ //这就是动态代理,【魔术揭秘】的地方
handler.invoke();
}
}
注解
注解:注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非代码本身的一部分。注解对于代码的运行效果没有直接影响。注解是一种类类型,其超类是java.lang.annotation.Annotation
可以简单的将注解理解为标签(标签里面的内容就是注解内的元素),想钉在哪就钉在哪,比如:钉在类型上(类/接口/枚举),钉在类的数据成员上,钉在类的方法成员上,钉在方法的入参上,甚至钉在别的注解上等等。
枚举
枚举:是一种类类型,其超类是java.lang.Enum 当我们想枚举一组有限个常量值(每个常量值都是一个对象),甚至想在这组常量值的不同从而想实现不同行为(以及数据成员私有副本),此时用枚举很合适。
IO
IO流 | File类 |
IO流的概念 | 文件名 |
IO流的核心方法 | 文件目录 |
字节流 | 文件相关的:是否存在、是否文件/目录 |
字符流 | 创建/删除文件、创建/删除目录 |
IO流的示例 | 读/写文件 |
NIO
核心包和概念 | 重点的类和接口 |
缓冲区 java.nio包 | 文件:Files工具类 |
通道 java.nio.channels包 | 文件路径:Path接口、Paths工具类 |
选择器 java.nio.channels包 | 文件属性:BasicFileAttributes接口 |
字符集 java.nio.charset包 | 目录流对象:DirectoryStream |
目录树:Files.walkFileTree();方法 |
序列化
java与xml
java与json
线程
线程基础
线程池
forkjoin框架
lambda表示式
stream流
单单考虑用java来开发有关web应用的话,要学习掌握的包:
基础 | java.lang | Java基础 类/接口 异常 |
集合/映射/工具类 | java.util | Collection/Map |
动态编程 | java.lang.annotation | 注解 |
java.lang.reflect | 反射 | |
java.beans | JavaBean | |
java.beans.beancontext | JavaBean的上下文 | |
网络 | java.net | 网络编程 |
I/O流 | java.io | 传统方式处理io流 |
java.nio | 新方式处理io流 | |
java.nio.channels | 通道 | |
java.nio.charset | 字符集 | |
java.nio.file | 文件/目录 | |
java.nio.file.attribute | 文件属性 | |
日期 时间 | java.time | |
java.time.chrono | ||
java.time.format | ||
java.time.temporal | ||
java.time.zone | ||
数据库 | java.sql | |
多线程 | java.util.concurrent | 并发多线程基础 |
java.util.concurrent.atomic | 原子类 | |
java.util.concurrent.locks | 锁 | |
Stream流 | java.util.function | 函数式接口 |
java.util.stream | stream流 | |
正则表达式 | java.util.regex | |
日志 | java.util.logging | |
集合/映射/工具类 | java.util | Collection/Map |
XML处理 | javax.xml | 解析XML |
Zip压缩 | java.util.zip | |
RMI远程调用 | java.rmi java.rmi.activation java.rmi.dgc java.rmi.registry java.rmi.server | |
Java安全 | java.security java.security.acl java.security.cert java.security.interfaces java.security.spec |