
Java高效编程最佳实践
Java开发 中级班
一、为什么需要该课程
从诞生之初直至现在,Java一直是最流行的编程语言之一。而在计算机世界里,变化是常态。几年的时间,计算机世界就可能发生天翻地覆的变化。处理器处理能力的增长,网络带宽的增长,以及编程方法论的进步等,意味着如今的开发环境与几年前发生了不小的变化,遑论20年前。这么多年以来,Java一直保持着旺盛的生命力,被众多公司采纳,受到众多程序员的喜爱,这自然与其不断地根据外界的变化调整更新自身的能力密切相关。
Java的最新发布版本是Java SE21。相比以前的版本添加了几个新特性,比如极为重要的lambda表达式,以及java.util.stream包中提供的流API。另外也在其他地方做了重要更新,比如允许接口方法具有默认实现。这些新的特性无疑会让程序员的工作变得十分方便,不过这也意味着程序员要改变固有的思维方式,在更适合使用新特性的地方积极运用它们。考虑到这些特性的重要性,本课程用了大量时间的来探讨这些新特性。
Java是一门生命力极强的语言,可以预见未来仍会随着开发环境的变化继续升级。希望读者通过本书,能够牢固地掌握Java的基础知识和思维方式,从而在Java推出新功能时,能够迅速掌握并加以运用!
该课程适应于各类开发人员技术人员.面向有编程经验的软件开发工程师,具有一定面向对象分析与编程基础,熟练使用过其他语言(如C语言,C++,VB等)等
二、课程内容安排(内容5天,课程顺序上课可能有一些调整)
第1单元 Java体系介绍
内容一:Java语言概述和JVM虚拟机体系
1.Java语言概述
2.Java虚拟机概述
3.Java虚拟机的体系结构
4.Java虚拟机内存管理机制
第2 Java面向对象编程
内容一:面向对象基本原则
1.面向对象基本原则概述
2.SRP:单一职责原则
3.OCP:开放-封闭原则
4.LSP:Liskov替换原则
5.DIP:依赖倒置原则
6.ISP:接口隔离原则
内容二:Java面向对象编程思维
1、面向对象分析与设计的本质
2、面向对象设计思维与面向过程设计思维—职责驱动设计
3、抽象本质
4、封装本质
5、继承本质
6、多态本质
7、面向对象常见的错误认识—思考OO带来的价值
8、为什么学习设计模式需要面向对象思维
9、从面向对象到模式到再到真正的面向对象
内容三:Java面向对象编程实现
1、定义继承、多态、重载、虚拟方法调用
2、使用访问修饰符protected和default (包内友好)
3、描述构造函数和方法重载的概念
4、描述完整对象创建和初始化工作
5、创建静态变量、方法和初始化
6、创建并使用枚举类型
内容三:java接口与抽象类
1、java接口
2、接口的特性
3、接口与抽象类
4、接口与回调
5、内部类
6、匿名内部类
内容四:java面向对象编程最佳实践
1.使类和成员的可访问性最小化
2.要在公有类而非公有域中使用访问方法
3.使可变性最小化
4.复合优先于继承
5.要么设计继承并提供文档说明,要么禁止继承
6.接口优于抽象类
7.为后代设计接口
8.接口只用于定义类型
9.类层次优于标签类
10.静态成员类优于非静态成员类
11.限制源文件为单个顶级类
第3 Java工程师必备设计模式
内容一:创建型模式(principles)
1、简单创建型工厂
1. Factory Method(工厂方法)(结合spring,无需手工编写
2. Builder(生成器) (结合Lombok)
3. Singleton(单件)(结合spring,无需手工编写)
2、java创建型模式的讨论
内容二:结构型模式(principles)
1.Adapter(适配器)—类对象结构型模式
2.Composite(组成)—对象结构型模式
3.FACADE(外观)—对象结构型模式
4.Proxy(代理)—对象结构型模式
内容三:行为型模式(principles)
1.CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型模式
2.OBSERVER(观察者)—对象行为型模式
3.STATE(状态)—对象行为型模式
4.STRATEGY(策略)—对象行为型模式
5.TEMPLATE METHOD(模板方法)—类行为型模式
内容四:软件设计的灵活性-结合案例分析设计模式的应用
1.什么是好的设计和衡量的手段,世界大师的观点(Robert C Martin , Peter Code,` James Shor)
2.一个好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。-Peter Code [CODE99]
3.可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标
4.灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标
5.可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标
6.分析真实项目,如何做的详细设计,给我们哪些启示,我们可以学习到什么
7.分析我们在项目之中是那些原因导致了没有实现这些目标.
内容五:设计原则-结合案例分析设计模式的应用
1.发现和封装变化的原则
2.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码交织在一起.
3.抽象稳定接口(抽象类),针对接口编程,而不是针对实现编程
4.分离变化维度,单一职责原则
5.动态绑定还是静态绑定,多用组合,少用继承
6.创建与使用分离,创建有变化也要封装
7.结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
第4 Java日志系统最佳实践 1.Log4j2/logback
2.日志代码的一般模式
a)Class 作为日志名称
b)Level的选择
c)异常与日志
i.需要说明判明关键输出点,以免程序重复try/catch 输出大量重复的异常内容
3.开发与生产级别日志系统的配置
a)日志与级别
b)常见的日志输出格式pattern (时间,线程,级别)
内容二: Log4j和logback 源代码分析—优秀系统的设计思想
1.Log4J、Logback源码分析
2.Log4j,Logback设计思想
3.Log4j,Logback设计模式应用
第5 Java函数式编程
内容一:Java常见的编程范式
1.编程范式概述
2.编程范式起源
3.面向过程编程
4.面向对象编程
5.命令式编程(Imperative)、声明式编程(Declarative)
6.函数式编程
内容二:Java函数式编程
1.什么是函数式编程
2.Lambda 表达式
3.第一个Lambda 表达式
4.如何辨别Lambda 表达式
5.流
6.将现有代码库和库代码Lambda化
7.学习Lambda表达式单元测试和调试的实践解决方案
8.用Lambda表达式实现面向对象编程的SOLID原则
9.Lambda 表达式改变了设计模式
10.使用Lambda 表达式的领域专用语言
11.使用Lambda 表达式的SOLID 原则
12.使用Lambda 表达式编写并发程序
第6 Java函数流式编程
内容一:Java流编程- Stream
1.Java Stream 流是什么
2.Java Stream流简介
3.java Stream流与集合
4.Java Stream流操作
5.Java Stream筛选和切片
6.Java Stream查找和匹配
内容二:Java Stream最佳实践
1.Lambda优先于匿名类
2.方法引用优先于Lambda
3.坚持使用标准的函数接口
4.谨慎使用Stream
5.优先选择Stream中无副作用的函数
6.Stream要优先用Collection作为返回类型
7.谨慎使用Stream并行
第7 Effective Java编程—通用编程技术
内容一:创建和销毁对象
1.遇到多个构造器参数时要考虑使用构建器
2.用私有构造器或者枚举类型强化Singleton属性
3.通过私有构造器强化不可实例化的能力
4.优先考虑依赖注入来引用资源 (结合spring)
5.避免创建不必要的对象
6.消除过期的对象引用
7.避免使用终结方法和清除方法
8.try-with-resources优先于try-finally
内容二:对于所有对象都通用的方法
1.覆盖equals时请遵守通用约定
2.覆盖equals时总要覆盖hashCode
3.始终要覆盖toString
4.谨慎地覆盖clone
5.考虑实现Comparable接口
内容三:方法
1.检查参数的有效性 (org.springframework.util.Assert 或者org.apache.commons.lang3. Validate)
2.必要时进行保护性拷贝
3.谨慎设计方法签名
4.慎用重载
5.慎用可变参数
6.返回零长度的数组或者集合,而不是null
7.谨慎返回optinal
8.为所有导出的API元素编写文档注释
内容四:通用编程
1.将局部变量的作用域最小化
2.for-each循环优先于传统的for循环
3.了解和使用类库
4.如果需要精确的答案,请避免使用float和double
5.基本类型优先于装箱基本类型
6.如果其他类型更适合,则尽量避免使用字符串
7.了解字符串连接的性能
8.通过接口引用对象
9.接口优先于反射机制
10.谨慎地使用本地方法
11.谨慎地进行优化
12.遵守普遍接受的命名惯例
第8 Java异常与错误处理
内容一:Java异常与错误处理
1.只针对异常的情况才使用异常
2.对可恢复的情况使用受检异常,对编程错误使用运行时异常
3.避免不必要地使用受检异常
4.优先使用标准的异常
5.抛出与抽象对应的异常
6.每个方法抛出的所有异常都要建立文档
7.在细节消息中包含失败-捕获信息
8.努力使失败保持原子性
9.不要忽略异常

1.值得收藏的电子产品20多种认证;
2.环境及可靠性试验设备选择的基本原则;
3.电阻器常见的失效模式与失效机理;
4.LCD屏的电磁兼容整改及设计技术分析;
5.工程师必读:如何在型号研制过程中控制电子元器件的可靠性;
6.给企业带来巨额损失的PCB“黑盘”,可以规避;
7.EMC整改分析—散热结构引起的ESD问题
8.电子元件的可靠性与可靠性试验;
9.LED驱动电源如何进行EMC整改?;
10.信号完整性100条经验规则;
11.滤波器选择需注意的十个问题;
12.产品EMC辐射发射超标原因有哪些?
13.浅谈HALT(高加速寿命筛选试验)在可靠性设计中的应用......
直接在公众号(需先关注)对话框回复序列号即可查看,例如“1”。




中国电子标准协会培训中心(http://www.ltke.cn)专业提供可靠性设计、热设计、EMC培训、SMT工艺、电路设计、架构设计、研发管理、嵌入式软件测试、软件技术等课程及服务。欢迎来电来函咨询:0755-26506757 13798472936 martin@ways.org.cn
喜欢本文请點個贊
并分享到您朋友圈哦!

