知识点汇总表
分类 关键词 描述 链接地址
maven 什么是maven Maven是项目管理工具,对软件项目提供构建与依赖管理
Maven是Apache基金会的顶级开源项目
Maven为Java项目提供了统一的管理方式,已成为业界标准
链接地址
Maven核心特性 项目设置遵循统一的规则,保证不同开发环境的兼容性
强大的依赖管理,项目依赖组件自动下载、自动更新
可扩展的插件机制,使用简单,功能丰富
链接地址
Maven安装和配置 1、安装jdk
2、下载maven安装包
3、解压缩压缩包
4、设置环境变量
5、与idea进行绑定
链接地址
 Maven项目标准结构 使用idea创建第一个maven项目 链接地址
目录                                                                        用途
${basedir}                                        根目录,用于保存pom.xml
${basedir}/src/main/java                  Java源代码目录
${basedir}/src/main/resources        资源目录,保存配置文件、静态图片等
${basedir}/src/test/java                    测试类的源代码
${basedir}/src/test/resources           测试时需要使用的资源文件
${basedir}/target                              项目输出的目录,用于存jar文件
${(basedir}/target/classes                字节码(.class)的编译输出目录
${basedir}/pom.xml                          项目(Project)对象(Object)模型(Model)文件
链接地址
Maven依赖管理 Maven利用dependency(依赖)自动下载、管理第三方Jar
在pom.xml文件中配置项目依赖的第三方组件
maven自动将依赖从中央仓库下载至本地仓库,并在工程中引用
链接地址
Maven的依赖坐标系 Groupld:机构或者团体的英文,采用"逆向域名"形式书写
Artifactld:项目名称,说明其用途,例如: cms、oa...
Version:版本号,一般采用"版本+单词"形式,例如:1.0.0.RELEASE
链接地址
本地仓库与中央仓库 通过项目讲解本地仓库和中央仓库 链接地址
Maven构建生命周期 命令                                            用途
validate                 验证项目是否正确且所有必须信息是可用的
compile                 源代码编译在此阶段完成
test                        运行test目录下的测试代码验证src下源代码的逻辑
package                生成产出物jar、war文件
verify                     运行任意的检查来验证项目包有效且达到质量标准
install                    安装打包的项目到本地仓库,以供其他项目使用
deploy                   拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
链接地址
Maven插件技术 Maven插件为构建项目提供了功能扩展的能力
maven-assembly-plugin是Maven打包插件,用于构建FatJar
FatJar是指将所有依赖包装为独立可运行的Jar
链接地址
Maven的属性管理 通过实例讲解属性管理 链接地址
工厂模式 设计模式 设计模式是前辈总结的设计经验
设计模式的目标是代码更容易理解,更容易维护
通过设计模式可以让代码更加可靠
链接地址
设计模式的分类 创建型模式
结构型模式
行为型模式
链接地址
工厂模式 工厂模式用于隐藏创建对象的细节
工厂模式核心:工厂类(Factory)
工厂模式可细分为简单工厂、工厂方法与抽象工厂
链接地址
项目应用-i18n国际化 在不同地区使用不同语言来显示软件界面
通过代码实现i18n国际化
链接地址
反射 什么是反射Reflect 反射(Reflect)是在运行时动态访问类与对象的技术
反射是JDK1.2版本后的高级特性,隶属于java.lang.reflect
大多数Java框架都基于反射实现参数配置、动态注入等特性
链接地址
反射的核心类 Class类
Constructor构造方法类
Method方法类
Field成员变量类
链接地址
Class类 Class是JVM中代表"类和接口"的类
Class对象具体包含了某个特定类的结构信息
通过Class对象可获取对应类的构造方法/方法/成员变量
链接地址
Class核心方法 方法                                                             用途
Class.forName()                                 静态方法,用于获取指定Class对象
classObj.newInstance()                      通过默认构造方法创建新的对象
classObj.getConstructor()                   获得指定的public修饰构造方法Constructor对象
classObj.getMethod()                         获取指定的public修饰方法Method对象
classObj.getField()                             获取指定的public修饰成员变量Field对象
链接地址
Constructor构造方法类 Constructor类是对Java类中的构造方法的抽象
Contructor对象包含了具体类的某个具体构造方法的声明
通过Constructor对象调用带参构造方法创建对象
链接地址
Constructor类核心方法 方法                                                                        用途
classObj.getConstructor()                 获取指定public修饰的构造方法对象
constructorObj.newInstance()          通过对应的构造方法创建对象
链接地址
Method方法类 Method对象指代某个类中的方法的描述
Method对象使用classObj.getMethod()方法获取
通过Method对象调用指定对象的对应方法
链接地址
Method类核心方法 方法                                                                       用途
classObj.getMethod()                     获取指定public修饰的方法对象
methodObj.invoke()                       调用指定对象的对应方法
链接地址
Field成员变量类 Field对应某个具体类中的成员变量的声明
Field对象使用classObj.getField()方法获取
通过Field对象可为某对象成员变量赋值/取值
链接地址
Field类核心方法 方法                                                                    用途
classObj.getField()                     获取指定public修饰的成员变量对象
fieldObj.set()                              为某对象指定成员变量赋值
fieldObj.get()                              获取某对象指定成员变量数值
链接地址
getDeclared系列方法 getDeclaredConstructor(s) | Method(s) | Field(s)获取对应对象
getConstructor(s) | Method(s)  |Field(s)只能获取public对象
访问非作用域内构造方法、方法、成员变量,会抛出异常
链接地址
反射在项目中的应用 通过国际化案例讲解反射 链接地址
Lambda表达式 什么是Lambda表达式 JDK8开始支持Lambda表达式,用来让程序编写更优雅
利用Lambda可以更简洁的实现匿名内部类与函数声明与调用
基于Lambda提供stream流式处理极大简化对集合的操作
链接地址
Lambda表达式语法          Lambda Operator
                  
(参数列表)  ->   实现语句
                            
使用逗号            单行直接写
分隔参数            多行用{}包括
参数类型可省略
单参数括号可省略
链接地址
函数式编程 函数式编程是基于函数式接口并使用lambda表达的编程方式
函数式编程理念是将代码作为可重用数据代入到程序运行中
函数式编程强调"你想做什么",而不是"你想怎么做"
链接地址
函数式接口 函数式接口是有且只有一个抽象方法的接口
Java中拥有大量函数式接口,如java.lang.Runnable
JDK8后提供了一系列新的函数式接口,位于java.util.function
链接地址
函数式接口Predicate Predicate是新增的函数式接口,位于java.util.function
Predicate用于测试传入的数据是否满足判断要求
Predicate接口需要实现test()方法进行逻辑判断
链接地址
JDK8常用函数式接口 接口                                       用途
Consumer<T>                     对应有一个输入参数无输出的功能代码
Function<T,R>                     对应有一个输入参数且需要返回数据的功能代码
Predicate<T>                       用于条件判断,固定返回布尔值
链接地址
Consumer接口的使用 通过案例讲解Consumer接口的使用 链接地址
Function接口的使用 通过案例讲解Function接口的使用,利用Function函数式接口生成定长随机字符串 链接地址
函数式编程与面向对象编程比较                               面向对象编程                                 函数式编程
设计思路                面向对象                                        面向过程
开发侧重                侧重过程,重分析,重设计                侧重结果,快速实现
可读性                    结构复杂,相对较差                        更适合人眼阅读,可读性更好
代码量                                                                     
并发问题                设计不当,会出现线程安全问题      不会出现线程安全问题
健壮性                                                                     
使用场景               中大型大型项目,多人协作工程       小型应用,要求快速实现
链接地址
Stream流 Stream流式处理是建立在Lambda基础上的多数据处理技术
Stream对集合数据处理进行高度抽象,极大简化代码量
Stream可对集合进行迭代,去重,筛选,排序,聚合等—系列处理
链接地址
Stream常用方法 接口                           用途
forEach                     循环遍历
map                           map方法用于映射每个元素到对应的结果
filter                           filter方法用于通过设置的条件过滤出元素
limit                            limit方法用于获取指定数量的流
sorted                        sorted方法用于对流进行排序
Collectors                  Collectors类实现将流转换成集合和聚合元素
链接地址
通过案例讲解Stream核心方法 链接地址
Stream五种创建方式 通过案例讲解创建Stream流的方式 链接地址
索引目录