知识点汇总表 | |||
分类 | 关键词 | 描述 | 链接地址 |
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流的方式 | 链接地址 |
咖喱小鱼丸 ·
更新于 2023-07-13
索引目录