课程简介
Java作为一种功能丰富且易于学习的编程语言,近年来已成为云计算、云服务中最主流的计算机编程语言之一。它集平台无关性、高安全机制、高可靠性以及丰富的网络API于一身,学习Java语言,可以掌握编程的基本概念和技能,为后续学习更高级的软件开发技术打下坚实的基础。
本课程主要介绍学习面向对象原则和java编程语言特性,Java语言精髓,帮助学员提升专业技能和思维能力,增强了就业竞争力、跨平台开发能力以及实际问题解决能力。
课程收益
1、帮助学员熟练掌握Java语言;
2、帮助学员深入理解面向对象程序设计的思想,掌握封装、继承、多态等面向对象编程的核心特性,并学会使用这些特性构建复杂的面向对象程序;
3、帮助学员提升编程能力和解决问题的能力
受众人群
该课程适应于各类开发人员技术人员.面向有编程经验的软件开发工程师,具有一定面向对象分析与编程基础,熟练使用过其他语言(如C语言,C++,VB等)等
课程周期
5天(30H)
课程大纲
标题 | 授课内容 |
一、Java体系介绍 | 1. Java语言概述和JVM虚拟机体系 (1) Java语言概述 (2) Java虚拟机概述 (3) Java虚拟机的体系结构 (4) Java虚拟机内存管理机制 |
二、Java面向对象编程 | 1. 面向对象基本原则 (1) 面向对象基本原则概述 (2) SRP:单一职责原则 (3) OCP:开放-封闭原则 (4) LSP:Liskov替换原则 (5) DIP:依赖倒置原则 (6) ISP:接口隔离原则 2. Java面向对象编程思维 (1) 面向对象分析与设计的本质 (2) 面向对象设计思维与面向过程设计思维—职责驱动设计 (3) 抽象本质 (4) 封装本质 (5) 继承本质 (6) 多态本质 (7) 面向对象常见的错误认识—思考OO带来的价值 (8) 为什么学习设计模式需要面向对象思维 (9) 从面向对象到模式到再到真正的面向对象 3. Java面向对象编程实现 (1) 定义继承、多态、重载、虚拟方法调用 (2) 使用访问修饰符protected和default (包内友好) (3) 描述构造函数和方法重载的概念 (4) 描述完整对象创建和初始化工作 (5) 创建静态变量、方法和初始化 (6) 创建并使用枚举类型 4. java接口与抽象类 (1) java接口 (2) 接口的特性 (3) 接口与抽象类 (4) 接口与回调 (5) 内部类 (6) 匿名内部类 5. java面向对象编程最佳实践 (1) 使类和成员的可访问性最小化 (2) 要在公有类而非公有域中使用访问方法 (3) 使可变性最小化 (4) 复合优先于继承 (5) 要么设计继承并提供文档说明,要么禁止继承 (6) 接口优于抽象类 (7) 为后代设计接口 (8) 接口只用于定义类型 (9) 类层次优于标签类 (10) 静态成员类优于非静态成员类 (11) 限制源文件为单个顶级类 |
三、Java工程师必备设计模式 | 1. 创建型模式(principles) (1) 简单创建型工厂 (2) Factory Method(工厂方法)(结合spring,无需手工编写 (3) Builder(生成器) (结合Lombok) (4) Singleton(单件)(结合spring,无需手工编写) (5) java创建型模式的讨论 2. 结构型模式(principles) (1) Adapter(适配器)—类对象结构型模式 (2) Composite(组成)—对象结构型模式 (3) FACADE(外观)—对象结构型模式 (4) Proxy(代理)—对象结构型模式 3. 行为型模式(principles) (1) CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型模式 (2) OBSERVER(观察者)—对象行为型模式 (3) STATE(状态)—对象行为型模式 (4) STRATEGY(策略)—对象行为型模式 (5) TEMPLATE METHOD(模板方法)—类行为型模式 4. 软件设计的灵活性-结合案例分析设计模式的应用 (1) 什么是好的设计和衡量的手段,世界大师的观点(Robert C Martin , Peter Code,` James Shor) (2) 一个好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。-Peter Code [CODE99] (3) 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标 (4) 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标 (5) 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标 (6) 分析真实项目,如何做的详细设计,给我们哪些启示,我们可以学习到什么 (7) 分析我们在项目之中是那些原因导致了没有实现这些目标. 5. 设计原则-结合案例分析设计模式的应用 (1) 发现和封装变化的原则 (2) 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码交织在一起. (3) 抽象稳定接口(抽象类),针对接口编程,而不是针对实现编程 (4) 分离变化维度,单一职责原则 (5) 动态绑定还是静态绑定,多用组合,少用继承 (6) 创建与使用分离,创建有变化也要封装 (7) 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化 |
四、Java日志系统最佳实践 | 1. Log4j2/logback 2. 日志代码的一般模式 (1) Class 作为日志名称 (2) Level的选择 (3) 异常与日志 ① 需要说明判明关键输出点,以免程序重复try/catch 输出大量重复的异常内容 3. 开发与生产级别日志系统的配置 (1) 日志与级别 (2) 常见的日志输出格式pattern (时间,线程,级别) 4. Log4j和logback 源代码分析—优秀系统的设计思想 (1) Log4J、Logback源码分析 (2) Log4j,Logback设计思想 (3) Log4j,Logback设计模式应用 |
五、Java函数式编程 | 1. Java常见的编程范式 (1) 编程范式概述 (2) 编程范式起源 (3) 面向过程编程 (4) 面向对象编程 (5) 命令式编程(Imperative)、声明式编程(Declarative) (6) 函数式编程 2. 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 表达式编写并发程序 |
六、Java函数流式编程 | 1. Java流编程- Stream (1) Java Stream 流是什么 (2) Java Stream流简介 (3) java Stream流与集合 (4) Java Stream流操作 (5) Java Stream筛选和切片 (6) Java Stream查找和匹配 2. Java Stream最佳实践 (1) Lambda优先于匿名类 (2) 方法引用优先于Lambda (3) 坚持使用标准的函数接口 (4) 谨慎使用Stream (5) 优先选择Stream中无副作用的函数 (6) Stream要优先用Collection作为返回类型 (7) 谨慎使用Stream并行 |
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员