做企业培训,当然要找对好讲师!合作联系

刘晖:Java课程培训方案

刘晖老师刘晖 注册讲师 164查看

课程概要

培训时长 : 1天

课程价格 : 扫码添加微信咨询

课程分类 : 培训开发

课程编号 : 16867

面议联系老师

适用对象

相关人员

课程介绍

(1)培训目标

本次培训课程,整个课程体系设计完备,思路清晰,学员通过本次课程的系统性学习可以掌握如下技能:

Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。

覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。

重点介绍了Java的模块化系统,还详细介绍了Java 10、Java 11的使用var声明局部变量、在Lambda表达式中使用var声明变量、改进的javac命令、基于嵌套的访问控制、HTTP Client网络编程,以及Java 10、Java 11新增的各种API功能。

课程并不单纯从知识角度来讲解Java,而是从解决问题的角度来介绍Java语言,讲课过程中涉及大量实用案例开发,这些案例既能让学员巩固每章的知识,又可以让学员学以致用,激发编程自豪感,进而引爆内心的编程激情。

课程覆盖Java 9/8/7,在大多数生产环境中,出于系统稳定性和升级成本的考量,使用的Java版本多是7/8,如果为了快速与大厂的开发环境接轨,建议选择Java 8。

课程同时也覆盖 Java 11,和10、12不同,11是Java的一个大版本,如果作为一种编程语言从零开始学习,尽可能多地掌握Java语言的新特性。

(2)具体课程方案(含课程大纲)

【课程大纲】(1天*6小时)

时间

内容

案例实践与练习

Day1

JavaSE

第1章Java语言概述与开发环境 

1.1 Java语言的发展简史 

1.2 Java程序运行机制 

1.2.1高级语言的运行机制 

1.2.2 Java程序的运行机制和JVM 

1.3开发Java的准备 

1.3.1下载和安装Java  的JDK (Java8 Java11)

不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 

1.3.2设置PATH环境变量 

为什么选择用户变量?用户变量与系统变量有什么区别? 

1.4第一个Java程序 

1.4.1编辑Java源代码 

1.4.2编译Java程序

当编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 

1.4.3运行Java程序 12

1.4.4根据CLASSPATH环境变量定位类 13

1.5 Java程序的基本规则 

1.5.1 Java程序的组织形式 

1.5.2 Java源文件的命名规则

1.5.3初学者容易犯的错误

1.6交互式工具:jshell

1.7 Java 11改进的垃圾回收器 

1.8何时开始使用IDE工具

我想学习Java编程,到底是学习Eclipse好,还是学习IntelliJ IDEA好呢?

第2章 JAVA编码规范

2.1 编码风格 

2.2 将编码惯例文档化以统一应用 

2.3 维护旧程序比开发新程序更常见 

2.4 不要认为修改程序很容易 

2.5 慎重采用新技术 

2.6  间隔相关编码准则

2.7  缩进相关编码准则

2.8  注释相关编码准则

2.9  标识符名称定义相关编码准则 

2.10 运算符相关编码准则

2.11 编写清晰代码所需编码准则

2.12 编写可移植代码所需编码准则

2.13 提升性能所需编码准则

2.14 编写易于理解的代码所需编码准则

2.15 用户接口处理相关编码准则

2.16 编写零漏洞代码所需编码准则

2.17 提升生产效率所需编码准则

1 学员动手安装JAVA的环境,包括Windows Linux各环境

 

2 利用客户现有的平台工具建立版本控制

 

3 组织学员统一项目编码规范,布置大作业完成公司JAVA编码规范

Day2

JavaSE

第3章 理解面向对象 

3.1面向对象 

3.1.1结构化程序设计简介 

3.1.2程序的三种基本结构 

3.1.3面向对象程序设计简介 

3.1.4面向对象的基本特征 

3.2 UML(统一建模语言)介绍

3.2.1 用例图 

3.2.2 类图 

3.2.3 组件图 

3.2.4 部署图 

3.2.5 顺序图 

3.2.6 活动图 

3.2.7 状态机图

3.3 Java的面向对象特征

3.3.1 一切都是对象 

3.3.2 类和对象 

第4章 数据类型和运算符 

4.1 注释 

4.1.1 单行注释和多行注释

4.1.2 文档注释 

API文档是什么? 

为什么要学习查看API文档的方法?

4.2 标识符和关键字 

4.2.1分隔符 

4.2.2 标识符规则 

4.2.3 Java关键字

4.3 数据类型分类

什么是变量?变量有什么用? 50

4.4 基本数据类型

4.4.1 整型 

4.4.2 字符型 

什么是字符集?

4.4.3浮点型 

4.4.4数值中使用下画线分隔 

4.4.5布尔型 

4.4.6使用var定义变量

4.5基本类型的类型转换

4.5.1 自动类型转换 

4.5.2 强制类型转换 

4.5.3 表达式类型的自动提升

4.6 直接量 

4.6.1 直接量的类型 

4.6.2 直接量的赋值 

4.7 运算符

4.7.1算术运算符 

4.7.2赋值运算符 

4.7.3位运算符 

4.7.4扩展后的赋值运算符 

4.7.5比较运算符 

4.7.6逻辑运算符 

4.7.7三目运算符 

4.7.8运算符的结合性和优先级 

1 随堂完成对应知识点的测试及实战

 

2完成大作业JAVA编码规范相应章节

 

Day3

JavaSE

 

 

 

第5章 流程控制与数组 

5.1顺序结构 

5.2分支结构 

5.2.1 if条件语句

5.2.2 Java 11改进的switch分支语句 

5.3 循环结构 

5.3.1 while循环语句 

5.3.2 do while循环语句 

5.3.3 for循环 

5.3.4 嵌套循环 

5.4 控制循环结构 

5.4.1 使用break结束循环

5.4.2 使用continue忽略本次循环剩下语句

5.4.3 使用return结束方法

5.5 数组类型 

5.5.1理解数组:数组也是一种类型 

int[]是一种类型吗?怎么使用这种类型呢? 

5.5.2 定义数组

5.5.3 数组的初始化 

能不能只分配内存空间,不赋初始值呢? 

5.5.4 使用数组 

为什么要我记住这些异常信息? 

5.5.5 foreach循环

5.6 深入数组 

5.6.1 内存中的数组 

为什么有栈内存和堆内存之分? 

5.6.2 基本类型数组的初始化

5.6.3 引用类型数组的初始化 

5.6.4 没有多维数组 

5.6.5 操作数组的工具类:Arrays 

5.6.6 数组应用举例 

第6章 面向对象(上)

6.1 类和对象 

6.1.1 定义类 

构造器不是没有返回值吗?为什么不能用void声明呢? 

6.1.2 对象的产生和使用 

6.1.3 对象、引用和指针 

6.1.4 对象的this引用 

6.2 方法详解

6.2.1 方法的所属性 

6.2.2 方法的参数传递机制 

6.2.3 形参个数可变的方法 

6.2.4 递归方法 

6.2.5 方法重载 

为什么方法的返回值类型不能用于区分重载的方法? 

6.3 成员变量和局部变量 

6.3.1 成员变量和局部变量

6.3.2 成员变量的初始化和内存中的运行机制 

6.3.3 局部变量的初始化和内存中的运行机制 

6.3.4 变量的使用规则 

6.4隐藏和封装

6.4.1理解封装 

6.4.2使用访问控制符 

6.4.3  package、import和import static 

6.4.4 Java的常用包 

6.5 深入构造器 

6.5.1使用构造器执行初始化 

构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 

6.5.2构造器重载 

为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗? 

6.6类的继承 

6.6.1 继承的特点 

6.6.2重写父类的方法 

6.6.3 super限定 

6.6.4调用父类构造器

为什么我创建Java对象时从未感觉到java.lang. Object类的构造器被调用过? 

6.7多态 

6.7.1多态性 

6.7.2引用变量的强制类型转换 

6.7.3 instanceof运算符 

6.8 继承与组合 

6.8.1 使用继承的注意点 

6.8.2 利用组合实现复用 

使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 

6.9 初始化块

6.9.1 使用初始化块 

6.9.2实例初始化块和构造器

6.9.3 类初始化块 

 

Day4

JavaSE

第7章 面向对象(下)

7.1 包装类 

Java为什么要对这些数据进行缓存呢? 

7.2 处理对象 

7.2.1打印对象和toString方法 

7.2.2==和equals方法 

上面程序中判断obj是否为Person类的实例时,为何不用obj instanceof Person来判断呢?

7.3类成员 

7.3.1理解类成员 

7.3.2单例(Singleton)类 

7.4 final修饰符 

7.4.1 final成员变量 

7.4.2 final局部变量 

7.4.3 final修饰基本类型变量和引用类型变量的区别 

7.4.4可执行“宏替换”的final变量 

7.4.5 final方法 

7.4.6 final类 

7.4.7 不可变类 

7.4.8缓存实例的不可变类 

7.5抽象类 

7.5.1抽象方法和抽象类 

7.5.2抽象类的作用 

7.6 Java 9改进的接口 

7.6.1接口的概念 

7.6.2 Java 9中接口的定义 

7.6.3 接口的继承 

7.6.4使用接口 

7.6.5接口和抽象类 

7.6.6面向接口编程 

7.7内部类 

7.7.1非静态内部类 

学生提问:非静态内部类对象和外部类对象的关系是怎样的? 

7.7.2 静态内部类 

为什么静态内部类的实例方法也不能访问外部类的实例属性呢? 

学生提问:接口里是否能定义内部接口? 

7.7.3 使用内部类 

既然内部类是外部类的成员,那么是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类呢? 

7.7.4局部内部类 

7.7.5匿名内部类 

7.8 Java 11增强的Lambda表达式 

7.8.1 Lambda表达式入门 

7.8.2 Lambda表达式与函数式接口 

7.8.3 在Lambda表达式中使用var 

7.8.4方法引用与构造器引用 

7.8.5 Lambda表达式与匿名内部类的联系和区别 

7.8.6 使用Lambda表达式调用Arrays的类方法 

7.9枚举类 

7.9.1手动实现枚举类 

7.9.2枚举类入门 

7.9.3 枚举类的成员变量、方法和构造器 

7.9.4 实现接口的枚举类 

枚举类不是用final修饰了吗?怎么还能派生子类呢? 

7.9.5包含抽象方法的枚举类 

7.10对象与垃圾回收 

7.10.1对象在内存中的状态 

7.10.2 强制垃圾回收 

7.10.3 finalize方法 

7.10.4 对象的软、弱和虚引用 

7.11修饰符的适用范围 

7.12 多版本JAR包 

  1. jar命令详解 
  2. 创建可执行的JAR包 
  3. 关于JAR包的技巧

第8章 Java基础类库 

8.1 与用户互动 

  1. 运行Java程序的参数 
  2. 使用Scanner获取键盘输入 

8.2系统相关 

  1. System类
  2. Runtime类与Java 9的ProcessHandle 

8.3 常用类 

  1. Object类 
  2. 操作对象的Objects工具类 
  3. Java 9改进的String、StringBuffer和StringBuilder类 
  4. Math类 
  5. ThreadLocalRandom与Random 
  6. BigDecimal类 

8.4 Java 8的日期、时间类 

  1. Date类 
  2. Calendar类 
  3. 新的日期、时间包 

8.5 正则表达式 

  1. 创建正则表达式 
  2. 使用正则表达式 

8.6 变量处理和方法处理 

  1. Java 9增强的MethodHandle  
  2. Java 9增加的VarHandle  

8.7 Java 11改进的国际化与格式化

  1. Java国际化的思路 
  2. Java支持的国家和语言 
  3. 完成程序国际化 
  4. 使用MessageFormat处理包含占位符的字符串
  5. 使用类文件代替资源文件 
  6. Java 9新增的日志API 
  7. 使用NumberFormat格式化数字 
  8. 使用DateFormat格式化日期、时间 
  9. 使用SimpleDateFormat格式化日期

8.8 Java 8新增的日期、时间格式器 

  1. 使用DateTimeFormatter完成格式化
  2. 使用DateTimeFormatter解析字符串
 

Day5

JavaSE

第9章 Java集合 

9.1 Java集合概述 

9.2  Java 11增强的Collection和Iterator接口 

  1. 使用Lambda表达式遍历集合 
  2. 使用Iterator遍历集合元素 
  3. 使用Lambda表达式遍历Iterator 
  4. 使用foreach循环遍历集合元素 
  5. 使用Predicate操作集合 
  6. 使用Stream操作集合 

9.3 Set集合 

  1. HashSet类 
  2. hashCode()方法对于HashSet是不是十分重要? 
  3. LinkedHashSet类 
  4. TreeSet类 
  5. EnumSet类 
  6. 各Set实现类的性能分析 

9.4  List集合

  1. 改进的List接口和ListIterator接口 
  2. ArrayList和Vector实现类 
  3. 固定长度的List 

9.5 Queue集合 

  1. PriorityQueue实现类 
  2. Deque接口与ArrayDeque实现类 
  3. LinkedList实现类 
  4. 各种线性表的性能分析 

9.6 增强的Map集合 

  1. Java 8为Map新增的方法 
  2. 改进的HashMap和Hashtable实现类 
  3. LinkedHashMap实现类 
  4. 使用Properties读写属性文件 
  5. SortedMap接口和TreeMap实现类 
  6. WeakHashMap实现类 
  7. IdentityHashMap实现类 
  8. EnumMap实现类 
  9. 各Map实现类的性能分析 

9.7 HashSet和HashMap的性能选项 

9.8 操作集合的工具类:Collections 

  1. 排序操作 
  2. 查找、替换操作 
  3. 同步控制 
  4. 设置不可变集合 
  5. Java 9新增的不可变集合 

第10章 泛型 

10.1 泛型入门 

  1. 编译时不检查类型的异常 
  2. 使用泛型 
  3. Java 9增强的“菱形”语法 

10.2 深入泛型 

  1. 定义泛型接口、类 
  2. 从泛型类派生子类 
  3. 并不存在泛型类 

10.3 类型通配符

  1. 使用类型通配符 
  2. 设定类型通配符的上限 
  3. 设定类型通配符的下限 
  4. 设定泛型形参的上限 

10.4 泛型方法 

  1. 定义泛型方法 
  2. 泛型方法和类型通配符的区别 
  3. “菱形”语法与泛型构造器 
  4. 泛型方法与方法重载 
  5. 类型推断 

10.5 擦除和转换

10.6 泛型与数组 

 

Day6

JavaSE

第11章 异常处理 

11.1异常概述 

11.2异常处理机制

  1. 使用try...catch捕获异常
  2. 异常类的继承体系 
  3. 多异常捕获 
  4. 访问异常信息 
  5. 使用finally回收资源
  6. 异常处理的嵌套 
  7. Java 9增强的自动关闭资源的try语句 

11.3 Checked异常和Runtime异常体系 

  1. 使用throws声明抛出异常 
  2. 方法重写时声明抛出异常的限制 

11.4 使用throw抛出异常 

  1. 抛出异常 
  2. 自定义异常类 
  3. catch和throw同时使用 
  4. 使用throw语句抛出异常 
  5. 异常链 

11.5 Java的异常跟踪栈 

11.6异常处理规则 

  1. 不要过度使用异常 
  2. 不要使用过于庞大的try块 
  3. 避免使用Catch All语句 
  4. 不要忽略捕获到的异常

第12章 AWT编程 

12.1 Java改进的GUI(图形用户界面)和AWT 

12.2 AWT容器 

12.3布局管理器 

  1. FlowLayout布局管理器
  2. BorderLayout布局管理器 
  3. BorderLayout最多只能放置5个组件吗?那它也太不实用了吧?
  4. GridLayout布局管理器 
  5. GridBagLayout布局管理器 
  6. CardLayout布局管理器 
  7. 绝对定位
  8. BoxLayout布局管理器

12.4 AWT常用组件 

  1. 基本组件 
  2. 对话框(Dialog) 

12.5 事件处理 

  1. Java事件模型的流程 
  2. 事件和事件监听器 
  3. 事件适配器 
  4. 使用内部类实现监听器 
  5. 使用外部类实现监听器 
  6. 类本身作为事件监听器类 
  7. 匿名内部类实现监听器 

12.6 AWT菜单

  1. 菜单条、菜单和菜单项 
  2. 右键菜单 

12.7 在AWT中绘图 

  1. 画图的实现原理 
  2. 使用Graphics类 

12.8 处理位图 

  1. Image抽象类和BufferedImage实现类 
  2. Java 9增强的ImageIO 

12.9 剪贴板 

  1. 数据传递的类和接口 
  2. 传递文本 
  3. 使用系统剪贴板传递图像 
  4. 使用本地剪贴板传递对象引用 
  5. 通过系统剪贴板传递Java对象 
 

Day7

JavaSE

数据库及JDBC

第13章 Swing编程 

13.1 Swing概述 

13.2 Swing基本组件的用法

  1. Swing组件层次 
  2. AWT组件的Swing实现 
  3. 为什么单击Swing多行文本域时不是弹出像AWT多行文本域中的右键菜单? 
  4. 为组件设置边框 
  5. Swing组件的双缓冲和键盘驱动 
  6. 使用JToolBar创建工具条 
  7. 使用JFileChooser和JColorChooser 
  8. 使用JOptionPane 

13.3 Swing中的特殊容器 

  1. 使用JSplitPane 
  2. 使用JTabbedPane
  3. 使用JLayeredPane、JDesktopPane和JInternalFrame 

13.4 Swing简化的拖放功能

13.5 Java 7新增的Swing功能

  1. 使用JLayer装饰组件 
  2. 创建透明、不规则形状窗口 

13.6 使用JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条 

  1. 创建进度条 
  2. 创建进度对话框

13.7 使用JSlider和BoundedRangeModel创建滑动条 

13.8 使用JSpinner和SpinnerModel创建微调控制器 

13.9 使用JList、JComboBox创建列表框 

  1. 简单列表框 
  2. 不强制存储列表项的ListModel和ComboBoxModel 
  3. 强制存储列表项的DefaultListModel和 DefaultComboBoxModel 
  4. 为什么JComboBox提供了添加、删除列表项的方法?而JList没有提供添加、删除列表项的方法呢? 
  5. 使用ListCellRenderer改变列表项外观 

13.10使用JTree和TreeModel创建树

  1. 创建树
  2. 拖动、编辑树节点
  3. 监听节点事件
  4. 使用DefaultTreeCellRenderer改变节点外观 
  5. 扩展DefaultTreeCellRenderer改变节点外观 
  6. 实现TreeCellRenderer改变节点外观

13.11使用JTable和TableModel创建表格 

  1. 创建表格 
  2. 我们指定的表格数据、表格列标题都是Object类型的数组,JTable如何显示这些Object对象?
  3. TableModel和监听器
  4. TableColumnModel和监听器
  5. 实现排序 
  6. 绘制单元格内容 
  7. 编辑单元格内容

13.12使用JFormattedTextField和JTextPane创建格式文本

  1. 监听Document的变化 
  2. 使用JPasswordField 
  3. 使用JFormattedTextField 
  4. 使用JEditorPane 
  5. 使用JTextPane

第14章 MySQL数据库与JDBC编程 

14.1 JDBC基础 

  1. JDBC简介 
  2. JDBC驱动程序 

14.2 SQL语法 

  1. 安装数据库 
  2. 关系数据库基本概念和MySQL基本命令 
  3. SQL语句基础 
  4. DDL语句 
  5. 数据库约束 
  6. 索引 
  7. 视图 
  8. DML语句语法 
  9. 单表查询 
  10. 数据库函数 
  11. 分组和组函数 
  12. 多表连接查询 
  13. 子查询 
  14. 集合运算 

14.3 JDBC的典型用法 

  1. JDBC
  2. 常用接口和类简介
  3. JDBC编程步骤 
  4. 前面给出的仅仅是MySQL和Oracle两种数据库的驱动,我看不出驱动类字符串有什么规律啊。如果我希望使用其他数据库,那怎么找到其他数据库的驱动类呢? 

14.4 执行SQL语句的方式 

  1. 使用executeLargeUpdate方法执行DDL和DML语句 
  2. 使用execute方法执行SQL语句 
  3. 使用PreparedStatement执行SQL语句 
  4. 使用CallableStatement调用存储过程 

14.5管理结果集 

  1. 可滚动、可更新的结果集 
  2. 处理Blob类型数据 
  3. 使用ResultSetMetaData分析结果集 

14.6 使用RowSet 1.1包装结果集 

  1. RowSetFactory与RowSet 
  2. 离线RowSet 
  3. 离线RowSet的查询分页 

14.7 事务处理 

  1. 事务的概念和MySQL事务支持 
  2. JDBC的事务支持 
  3. 使用批量更新 

14.8分析数据库信息 

  1. 使用DatabaseMetaData分析数据库信息 
  2. 使用系统表分析数据库信息 
  3. 选择合适的分析方式 

14.9 使用连接池管理连接 

  1. DBCP数据源 
  2. C3P0数据源 
 

Day8

数据库及JDBC

第15章 注解(Annotation) 

15.1 基本注解 

  1. 限定重写父类方法:@Override 
  2. Java 9增强的@Deprecated  
  3. 抑制编译器警告:@SuppressWarnings 
  4. “堆污染”警告与Java 9增强的@SafeVarargs 
  5. 函数式接口与@FunctionalInterface 

15.2 JDK的元注解 

  1. 使用@Retention 
  2. 使用@Target 
  3. 使用@Documented 
  4. 使用@Inherited 

15.3 自定义注解 

  1. 定义注解 
  2. 提取注解信息 
  3. 使用注解的示例 
  4. 重复注解 
  5. 类型注解 

15.4编译时处理注解 

第16章 输入/输出 

16.1 File类 

  1. 访问文件和目录 
  2. 文件过滤器 

16.2 理解Java的IO流 

  1. 流的分类 
  2. 流的概念模型 

16.3 字节流和字符流 

  1. InputStream和Reader 
  2. OutputStream和Writer 

16.4 输入/输出流体系 

  1. 处理流的用法 
  2. 输入/输出流体系 
  3. 转换流 
  4. 怎么没有把字符流转换成字节流的转换流呢? 
  5. 推回输入流 

16.5重定向标准输入/输出 

16.6 Java虚拟机读写其他进程的数据 

16.7 RandomAccessFile 

16.8 Java 9改进的对象序列化 

  1. 序列化的含义和意义 
  2. 使用对象流实现序列化 
  3. 对象引用的序列化 
  4. Java 9增加的过滤功能 
  5. 自定义序列化 
  6. 另一种自定义序列化机制 

16.9 NIO 

  1. Java新IO概述 
  2. 使用Buffer 
  3. 使用Channel 
  4. 字符集和Charset 
  5. 二进制序列与字符之间如何对应呢? 
  6. 文件锁 

16.10 NIO.2的功能和用法 

  1. Path、Paths和Files核心API 
  2. 使用FileVisitor遍历文件和目录 
  3. 使用WatchService监控文件变化 
  4. 访问文件属性 
 

Day9

JavaSE

第17章 多线程 

17.1 线程概述 

  1. 线程和进程 
  2. 多线程的优势 

17.2 线程的创建和启动 

  1. 继承Thread类创建线程类 
  2. 实现Runnable接口创建线程类 
  3. 使用Callable和Future创建线程 
  4. 创建线程的三种方式对比 

17.3线程的生命周期 

  1. 新建和就绪状态 
  2. 运行和阻塞状态 
  3. 线程死亡 

17.4控制线程 

  1. join线程 
  2. 后台线程 
  3. 线程睡眠:sleep 
  4. 改变线程优先级 

17.5 线程同步 

  1. 线程安全问题 
  2. 同步代码块 
  3. 同步方法 
  4. 释放同步监视器的锁定 
  5. 同步锁(Lock) 
  6. 死锁及常用处理策略 

17.6 线程通信 

  1. 传统的线程通信 
  2. 使用Condition控制线程通信 
  3. 使用阻塞队列(BlockingQueue)控制线程通信 

17.7 线程组和未处理的异常 

17.8 线程池 

  1. 使用线程池管理线程 
  2. 使用ForkJoinPool利用多CPU 

17.9 线程相关类 

  1. ThreadLocal类 
  2. 包装线程不安全的集合 
  3. 线程安全的集合类 
  4. Java 9新增的发布-订阅框架 

第18章 网络编程 

18.1网络编程的基础知识 

  1. 网络基础知识 
  2. IP地址和端口号 

18.2 Java的基本网络支持 

  1. 使用InetAddress 
  2. 使用URLDecoder和URLEncoder 
  3. URL、URLConnection和URLPermission 

18.3 基于TCP协议的网络编程 

  1. TCP协议基础 
  2. 使用ServerSocket创建TCP服务器端 
  3. 使用Socket进行通信 
  4. 加入多线程 
  5. 记录用户信息 
  6. 半关闭的Socket 
  7. 使用NIO实现非阻塞Socket通信 
  8. 使用AIO实现非阻塞通信 

18.4基于UDP协议的网络编程 

  1. UDP协议基础 
  2. 使用DatagramSocket发送、接收数据 
  3. 使用MulticastSocket实现多点广播 

18.5使用代理服务器 

  1. 直接使用Proxy创建连接 
  2. 使用ProxySelector自动选择代理服务器 

18.6 Java 11标准化的HTTP Client 

  1. 发送同步GET请求 
  2. 发送带请求体的请求 
  3. 发送异步请求 
  4. WebSocket客户端支持 
  5. 基于WebSocket的多人实时聊天 
 

Day10

JavaSE

版本控制之道:Subversion

第19章 类加载机制与反射 

19.1 类的加载、连接和初始化 

  1. JVM和类 
  2. 类的加载 
  3. 类的连接 
  4. 类的初始化 
  5. 类初始化的时机 

19.2 类加载器 

  1. 类加载机制 
  2. 创建并使用自定义的类加载器 
  3. URLClassLoader类 

19.3通过反射查看类信息 

  1. 获得Class对象 
  2. 从Class中获取信息 
  3. 方法参数反射 

19.4 使用反射生成并操作对象 

  1. 创建对象 
  2. 调用方法 
  3. 访问成员变量值 
  4. 操作数组 
  5. Java 11新增的嵌套访问权限 

19.5 使用反射生成JDK动态代理 

  1. 使用Proxy和InvocationHandler创建动态代理 
  2. 动态代理和AOP 

19.6 反射和泛型 

  1. 泛型和Class类 
  2. 使用反射来获取泛型信息 

研发平台集成工具:版本控制之道:Subversion

第1章 简介

 1.1 现实生活中的版本控制

 1.2 路线图

 1.3 为什么选择SubversioN

第2章 什么是版本控制

 2.1 项目仓库

 2.2 我们需要存储什么

 2.3 工作拷贝和操作文件 

 2.4 项目,目录以及文件 

 2.5 版本从何而来

 2.6 标签 

 2.7 分支 

 2.8 合并 

 2.9 加锁策略的选择

 2.10 配置管理(CM)

第3章 Subversion入门

 3.1 安装Suversion

 3.2 创建项目仓库

 3.3 创建简单的项目 

 3.4 开始开发一个项目 

 3.5 修改

 3.6 更新项目仓库

 3.7 当世界产生碰撞时

 3.8 解决冲突 

第4章 实例指导 

 4.1 我们的基本哲学 

 4.2 使用版本控制系统的一些重要步骤 

第5章 访问项目仓库

 5.1 网络协议 

 5.2 选择如何联网 

第6章 常见的Subversion命令

 6.1 把东西签出来 

 6.2 保持更新

 6.3 添加文件和目录 

 6.4 属性

 6.5 拷贝、移动文件和目录

 6.6 查看改变了什么 

 6.7 处理合并冲突 

 6.8 提交改动

 6.9 查看改动历史

 6.10 移除改动

第7章 文件加锁和二进制文件 

 7.1 文件加锁概览

 7.2 实战文件加锁

 7.3 何时使用加锁

第8章 组织你的项目仓库

 8.1 简单的项目 

 8.2 多个项目 

 8.3 多个项目仓库

第9章 使用标签和分支 

 9.1 标签和分支 

 9.2 创建发布分支 

第10章 创建项目 

 

Day11

JavaWeb

Spring/springMVC

mybatis

第1章 Java EE应用和开发环境 

1.1 Java EE应用概述 

1.1.1 Java EE应用的分层模型

1.1.2 Java EE应用的组件 

1.1.3 Java EE应用的结构和优势 

1.1.4 常用的Java EE服务器 

1.2 轻量级Java EE应用相关技术

1.2.1 JSP、Servlet 4.x和JavaBean及替代技术 

1.2.2 Spring MVC及替代技术 

1.2.3 MyBatis及替代技术 

1.2.4 Spring及替代技术 

1.3 Tomcat的下载和安装 

1.3.1 安装Tomcat服务器 

1.3.2 配置Tomcat的服务端口 

1.3.3 进入控制台 

1.3.4 部署Web应用 

1.3.5 配置Tomcat的数据源 

1.4 Eclipse的安装和使用 

1.4.1 Eclipse的下载和安装 

1.4.2 在线安装Eclipse插件 

1.4.3 从本地压缩包安装插件 

1.4.4 手动安装Eclipse插件 

1.4.5 使用Eclipse开发Java Web应用 

1.4.6 导入Eclipse项目 

1.4.7 导入非Eclipse项目 

1.5 Ant的安装和使用 

1.5.1 Ant的下载和安装 

1.5.2 使用Ant工具 

1.5.3 定义生成文件 

1.5.4 Ant的任务(task) 

1.6 Maven的安装和使用 

1.6.1 下载和安装Maven 

1.6.2 设置Maven 

1.6.3 创建、构建简单的项目 

1.6.4 Maven的核心概念 

1.6.5 依赖管理 

1.6.6 POM文件的元素 

1.7 使用Git进行软件配置管理(SCM) 

1.7.1 下载和安装Git、TortoiseGit 

1.7.2 创建本地资源库 

1.7.3 添加文件和文件夹 

1.7.4 提交修改 

1.7.5 查看文件或文件夹的版本变更 

1.7.6 删除文件或文件夹 

1.7.7 从以前版本重新开始 

1.7.8 克隆项目 

1.7.9 创建分支 

1.7.10 沿着分支开发 

1.7.11 合并分支 

1.7.12 使用Eclipse作为Git客户端 

1.7.13 配置远程中央资源库 

1.7.14 推送项目 

1.7.15 获取项目和拉取项目 

第2章 MyBatis的基础用法 

2.1 MyBatis是ORM框架吗 

2.1.1 何谓ORM 

2.1.2 ORM的映射方式 

2.1.3 MyBatis的映射方式 

2.2 MyBatis入门 

2.2.1 MyBatis的下载和安装 

2.2.2 MyBatis的数据库操作 

2.2.3 使用MyBatis执行CRUD 

2.2.4 利用Mapper对象 

2.2.5 在Eclipse中使用MyBatis 

2.3 MyBatis核心API及作用域

2.3.1 SqlSessionFactoryBuilder的作用域 

2.3.2 SqlSessionFactory的作用域 

2.3.3 SqlSession及其作用域 

2.3.4 Mapper组件的作用域 

2.4 MyBatis配置详解 

2.4.1 属性配置 

2.4.2 设置配置 

2.4.3 为类型配置别名 

2.4.4 对象工厂 

2.4.5 加载Mapper 

2.5 类型处理器 

2.5.1 内置的类型处理器 

2.5.2 自定义类型处理器 

2.5.3 枚举的类型处理器 

2.5.4 存储枚举值的序号 

2.5.5 同时存储枚举值的名称和序号 

2.6 数据库环境配置 

2.6.1 环境配置与默认环境配置 

2.6.2 事务管理器 

2.6.3 数据源配置 

2.6.4 配置第三方C3P0数据源 

2.7 支持不同类型的数据库 

2.8 Mapper基础 

2.8.1 select的用法 

2.8.2 insert的用法 

2.8.3 使用useGeneratedKeys返回 自增长的主键值 

2.8.4 使用selectKey生成主键值 

2.8.5 update和delete元素的用法 

2.8.6 使用sql元素定义可复用的SQL片段 

2.8.7 参数处理 

2.8.8 参数的额外声明 

2.8.9 字符串替换 

2.9 MyBatis代码生成器 

2.9.1 提供配置文件 

2.9.2 运行MBG 

 

Day12 

JavaWeb

Spring/springMVC

mybatis

第3章 深入使用MyBatis 

3.1 结果集映射 

3.1.1 简单resultMap映射 

3.1.2 构造器映射 

3.1.3 自动映射 

3.2 调用存储过程 

3.2.1 调用返回结果集的存储过程 

3.2.2 调用带out模式参数的存储过程 

3.2.3 调用传出参数为游标引用的存储过程 

3.3 关联映射 

3.3.1 基于嵌套select的一对一映射 

3.3.2 基于嵌套select映射策略的性能缺陷 

3.3.3 延迟加载的原理 

3.3.4 基于多表连接查询的一对一映射

3.3.5 基于多结果集的一对一映射 

3.3.6 基于嵌套select的一对多映射 

3.3.7 基于多表连接查询的一对多映射

3.3.8 基于多结果集的一对多映射

3.3.9 多对多映射的三种策略 

3.4 基于辨别者列的继承映射 

3.4.1 继承映射的简单示例 

3.4.2 继承映射的复杂示例 

3.5 动态SQL 

3.5.1 if元素的用法 

3.5.2 在update更新列中使用if 

3.5.3 在insert动态插入列中使用if 

3.5.4 choose、when、otherwise元素的 用法 

3.5.5 where与trim的用法 

3.5.6 set与trim的用法 

3.5.7 使用trim实现动态插入 

3.5.8 foreach元素的基本用法

3.5.9 foreach实现批量插入 

3.5.10 foreach实现批量更新

3.5.11 bind元素的用法 

3.6 缓存 

3.6.1 一级缓存 

3.6.2 一级缓存的脏数据与避免方法 

3.6.3 二级缓存 

3.6.4 二级缓存的脏数据与避免方法 

3.6.5 整合Ehcache实现二级缓存 

3.7 用插件扩展MyBatis

3.7.1 拦截器接口及作用原理 

3.7.2 可拦截的目标 

3.7.3 为MyBatis开发分页插件 

第4章 Spring的基础用法 

4.1 Spring简介和Spring 5的变化 

4.1.1 Spring简介 

4.1.2 Spring 5.x的变化 

4.2 Spring入门 

4.2.1 Spring的下载和安装 

4.2.2 使用Spring管理Bean 

4.2.3 在Eclipse中使用Spring 

4.3 Spring的核心机制:依赖注入 

4.3.1 理解依赖注入 

4.3.2 设值注入 

4.3.3 构造注入 

4.3.4 两种注入方式的对比 

4.4 使用Spring容器 

4.4.1 Spring容器 

4.4.2 使用ApplicationContext  

4.4.3 ApplicationContext的国际化支持 

4.4.4 ApplicationContext的事件机制 

4.4.5 让Bean获取Spring容器 

4.5 Spring容器中的Bean 

4.5.1 Bean的基本定义和Bean别名 

4.5.2 容器中Bean的作用域 

4.5.3 配置依赖 

4.5.4 设置普通属性值 

4.5.5 配置合作者Bean 

4.5.6 使用自动装配注入合作者Bean  

4.5.7 注入嵌套Bean 

4.5.8 注入集合值 

4.5.9 组合属性 

4.5.10 Spring的Bean和JavaBean 

4.6 Spring的Java配置管理 

4.7 创建Bean的三种方式 

4.7.1 使用构造器创建Bean 

4.7.2 使用静态工厂方法创建Bean  

4.7.3 使用实例工厂方法创建Bean  

4.8 深入理解容器中的Bean 

4.8.1 抽象Bean与子Bean 

4.8.2 Bean继承与Java继承的区别 

4.8.3 容器中的工厂Bean 

4.8.4 获得Bean本身的id 

4.8.5 强制初始化Bean 

4.9 容器中Bean的生命周期 

4.9.1 依赖关系注入之后的行为 

4.9.2 Bean销毁之前的行为 

4.9.3 协调作用域不同步的Bean 

4.10 高级依赖关系配置 

4.10.1 获取其他Bean的属性值 

4.10.2 获取Field值 

4.10.3 获取方法的返回值 

4.11 基于XML Schema的简化配置方式 

4.11.1 使用p:命名空间简化配置 

4.11.2 使用c:命名空间简化配置 

4.11.3 使用util:命名空间简化配置 

4.12 Spring表达式语言 

4.12.1 使用Expression接口进行表达式求值 

4.12.2 Bean定义中的表达式语言支持 

4.12.3 SpEL语法详述 

 

Day13 

JavaWeb

Spring/springMVC

mybatis

第5章 深入使用Spring 

5.1 两种后处理器 

5.1.1 Bean后处理器 

5.1.2 Bean后处理器的用处 

5.1.3 容器后处理器 

5.1.4 属性占位符配置器 

5.1.5 重写占位符配置器 

5.2 “零配置”支持 

5.2.1 搜索Bean类 

5.2.2 指定Bean的作用域 

5.2.3 使用@Resource、@Value配置依赖 

5.2.4 使用@PostConstruct和@PreDestroy定制生命周期行为 

5.2.5 @DependsOn和@Lazy  

5.2.6 自动装配和精确装配 

5.2.7 Spring 5新增的注解 

5.3 资源访问 

5.3.1 Resource实现类 

5.3.2 ResourceLoader接口和 ResourceLoaderAware接口 

5.3.3 使用Resource作为属性 

5.3.4 在ApplicationContext中使用资源 

5.4 Spring的AOP 

5.4.1 为什么需要AOP 

5.4.2 使用AspectJ实现AOP 

5.4.3 AOP的基本概念 

5.4.4 Spring的AOP支持 

5.4.5 基于注解的“零配置”方式 

5.4.6 基于XML配置文件的管理方式 

5.5 Spring的缓存机制 

5.5.1 启用Spring缓存 

5.5.2 使用@Cacheable执行缓存 

5.5.3 使用@CacheEvict清除缓存数据 

5.6 Spring的事务 

5.6.1 Spring支持的事务策略 

5.6.2 使用XML Schema配置事务策略 

5.6.3 使用@Transactional  

5.7 Spring整合MyBatis 

5.7.1 整合MyBatis的关键点及快速入门 

5.7.2 配置SqlSessionFactory  

5.7.3 通过工厂Bean配置Mapper组件 

5.7.4 通过扫描自动配置Mapper组件 

5.7.5 基于SqlSession实现DAO组件 

5.7.6 继承SqlSessionDaoSupport实现DAO组件 

5.7.7 事务管理 

第6章 Spring MVC的基础用法 

6.1 MVC概述 

6.1.1 MVC模式及其优势 

6.1.2 Spring MVC与Struts 2的区别 

6.2 Spring MVC入门 

6.2.1 在Web应用中启动Spring容器 

6.2.2 配置核心控制器 

6.2.3 开发控制器 

6.2.4 提供视图资源 

6.2.5 使用Eclipse开发Spring MVC应用 

6.3 Spring MVC的流程 

6.3.1 Spring MVC应用的开发步骤 

6.3.2 Spring MVC的运行流程 

6.3.3 DispatcherServlet详解 

6.3.4 mvc:annotation-driven详解 

6.4 静态资源处理 

6.4.1 静态资源映射 

6.4.2 配置默认Servlet 

6.5 视图解析器 

6.5.1 UrlBasedViewResolver的功能与用法 

6.5.2 InternalResourceViewResolver的功能与用法 

6.5.3 XmlViewResolver及视图解析器的链式处理 

6.5.4 ResourceBundleViewResolver的功能与用法 

6.5.5 BeanNameViewResolver的功能与用法 

6.5.6 重定向视图 

6.5.7 将数据传给重定向目标 

6.5.8 ContentNegotiatingViewResolver的功能与用法 

6.6 请求映射与参数处理 

6.6.1 HandlerMapping与处理映射 

6.6.2 SimpleUrlHandlerMapping的功能与用法 

6.6.3 @RequestMapping注解及其变体 

6.6.4 处理方法允许的返回值类型 

6.6.5 @RequestParam注解与MultiValueMap 

6.6.6 使用@PathVariable获取路径变量的值 

6.6.7 使用@PathVariable处理正则 表达式 

6.6.8 路径模式 

6.6.9 使用@MatrixVariable处理Matrix变量 

6.6.10 使用@RequestHeader获取请求头的值 

6.6.11 异步处理 

6.6.12 使用DeferredResult支持异步处理 

6.6.13 使用@ModelAttribute修饰方法本身 

6.6.14 使用@ModelAttribute修饰方法参数 

6.7 将数据传给视图页面 

6.7.1 Model、ModelMap和RedirectAttributes 

6.7.2 使用@SessionAttributes添加session属性 

6.8 RESTful服务支持 

6.8.1 RESTful简介 

6.8.2 @RequestBody与@ResponseBody注解 

6.8.3 HttpMessageConverter与消息转换 

6.8.4 转换XML数据 

6.8.5 使用@RestController修饰RESTful控制器 

6.8.6 @CrossOrigin注解与跨域请求 

6.9 访问Servlet API相关数据 

6.9.1 处理方法可接受的形参类型 

6.9.2 使用@RequestAttribute获取请求属性 

6.9.3 使用@SessionAttribute获取session属性 

6.9.4 直接访问Servlet API 

6.9.5 使用WebRequest和NativeWebRequest伪访问 

6.9.6 使用@CookieValue获取cookie值 

6.9.7 在处理方法中使用IO流 

 

Day14

JavaWeb

Spring/springMVC

mybatis

第7章 深入使用Spring MVC 

7.1 国际化 

7.1.1 国际化到底怎么做 

7.1.2 根据浏览器请求头确定Locale  

7.1.3 根据session确定Locale 

7.1.4 根据cookie值确定Locale 

7.2 异常处理 

7.2.1 Spring MVC异常处理

7.2.2 传统的异常处理机制 

7.2.3 使用@ResponseStatus修饰异常类 

7.2.4 使用@ExceptionHandler修饰异常处理方法 

7.2.5 使用@ControllerAdvice定义异常Aspect 

7.2.6 使用@RestControllerAdvice定义异常Aspect 

7.3 标签库 

7.3.1 form标签与普通表单域标签

7.3.2 radiobutton和radiobuttons标签 

7.3.3 checkbox和checkboxes标签 

7.3.4 select和option、options标签 

7.3.5 htmlEscape和escapeBody标签 

7.3.6 url和param标签 

7.4 类型转换与绑定 

7.4.1 BeanWrapper简介 

7.4.2 PropertyEditor与内置实现类 

7.4.3 自定义PropertyEditor  

7.4.4 使用WebBindingInitializer注册全局PropertyEditor 

7.4.5 使用ConversionService执行转换 

7.4.6 处理转换错误 

7.5 格式化 

7.5.1 使用格式化器 

7.5.2 使用FormatterRegistrar注册 格式化器 

7.6 数据校验 

7.6.1 使用Validation执行校验 

7.6.2 基于JSR 303执行校验 

7.7 文件上传与下载 

7.7.1 使用MultipartFile处理文件上传 

7.7.2 基于Commons FileUpload组件 上传文件 

7.7.3 使用@RequestPart注解 

7.7.4 文件下载 

7.7.5 下载前的授权控制 

7.8 拦截器 

7.9 SSM整合开发 

7.9.1 搭建项目 

7.9.2 开发Mapper组件 

7.9.3 开发Service组件 

7.9.4 控制器与视图 

第8章 简单工作流系统 

8.1 项目背景及系统结构 

8.1.1 应用背景 

8.1.2 系统功能介绍 

8.1.3 相关技术介绍 

8.1.4 系统结构 

8.1.5 系统的功能模块 

8.2 领域对象层 

8.2.1 设计领域对象 

8.2.2 创建领域对象类 

8.3 实现Mapper(DAO)层 

8.3.1 Mapper组件的定义 

8.3.2 实现Mapper组件 

8.3.3 部署Mapper层 

8.4 实现Service层 

8.4.1 业务逻辑组件的设计 

8.4.2 实现业务逻辑组件 

8.4.3 事务管理 

8.4.4 部署业务逻辑组件 

8.5 实现任务的自动调度 

8.5.1 使用Quartz 

8.5.2 在Spring中使用Quartz 

8.6 实现系统Web层 

8.6.1 配置核心控制器和启动Spring容器 

8.6.2 控制器的处理顺序 

8.6.3 员工登录 

8.6.4 进入打卡 

8.6.5 处理打卡 

8.6.6 进入申请 

8.6.7 提交申请 

8.6.8 使用拦截器完成权限管理 

 

Day15

HTML

JavaScript

CSS

第1章 HTML5基础

通过19个实例进行学习

1.1 新建文档

1.1.1 定义空白文档

1.1.2 添加网页内容

1.1.3 简化HTML5文档

1.2 头部信息

1.2.1 定义网页标题

1.2.2 定义网页元信息

1.2.3 定义文档视口

1.3 基本结构

1.3.1 定义文档结构

1.3.2 使用div元素

1.3.3 使用id和class

1.3.4 使用title

1.3.5 使用role

1.3.6 HTML注释

1.4 HTML5主结构

1.4.1 定义页眉

1.4.2 定义导航

1.4.3 定义主要区域

1.4.4 定义文章块

1.4.5 定义区块

1.4.6 定义附栏

1.4.7 定义页脚

1.5 项目实战

第2章 HTML5文本

通过24个实例进行学习

2.1 标题和正文

2.1.1 标题

2.1.2 段落

2.2 描述性信息

2.2.1 强调

2.2.2 注解

2.2.3 备选

2.2.4 上下标

2.2.5 术语

2.2.6 代码

2.2.7 预定义格式

2.2.8 缩写词

2.2.9 编辑提示

2.2.10 引用

2.2.11 引述

2.2.12 换行显示

2.2.13 修饰

2.2.14 非文本注解

2.3 实用性标记

2.3.1 高亮显示

2.3.2 进度

2.3.3 刻度

2.3.4 时间

2.3.5 联系信息

2.3.6 显示方向

2.3.7 换行断点

2.3.8 标注

第3章 HTML5图像和多媒体

通过11个实例进行学习

3.1 网页图像

3.1.1 定义图像

3.1.2 定义流

3.1.3 定义图标

3.2 响应式图像

3.2.1 响应视图大小

3.2.2 响应屏幕方向

3.2.3 响应像素密度

3.2.4 响应图像格式

3.2.5 自适应像素比

3.2.6 自适应视图宽

3.3 音频和视频

3.3.1 使用embed

3.3.2 使用object

3.3.3 使用audio

3.3.4 使用video

3.4 项目实战

3.4.1 设计MP3播放器

3.4.2 设计视频播放器

 

Day16

 HTML

JavaScript

CSS

第4章 HTML5列表和超链接

通过18个实例进行学习

4.1 HTML5列表

4.1.1 无序列表

4.1.2 有序列表

4.1.3 项目编号

4.1.4 嵌套列表

4.1.5 描述列表

4.1.6 菜单列表

4.1.7 快捷菜单

4.1.8 添加命令

4.1.9 设计快捷命令

4.1.10 设计任务列表

4.2 HTML5超链接

4.2.1 普通链接

4.2.2 块链接

4.2.3 锚点链接

4.2.4 目标链接

4.2.5 电子邮件链接

4.2.6 下载链接

4.2.7 图像热点

4.2.8 框架链接

4.3 项目实战

4.3.1 设计导航页面

4.3.2 设计九宫格版式

4.3.3 设计用户管理界面

第5章 HTML5表格

通过16个实例进行学习

5.1 定义表格

5.1.1 普通表格

5.1.2 列标题

5.1.3 表格标题

5.1.4 表格行分组

5.1.5 表格列分组

5.2 表格属性

5.2.1 单线表格

5.2.2 分离单元格

5.2.3 细线边框

5.2.4 表格说明

5.3 单元格属性

5.3.1 跨单元格显示

5.3.2 表头单元格

5.3.3 绑定表头

5.3.4 信息缩写

5.3.5&

刘晖老师的其他课程

• 刘晖:Java编程语言开发
【课程特色】1.   课上采用案例式教学,通俗易懂,课下一对一辅导强化训练,学与练交叉进行强化记忆,你所要做的就是认真听,勤于问,乐于练。2.   清晰的知识结构,根据应用经验采用最优化授课模式。3.   内容充沛、详略得当,前后呼应。4.   讲师资历丰富,具有丰富的实践经验。5.   知识讲授+贴身案例+场景故事+互动讨论+现场演练+落地跟踪【课程对象】相关人员【课程时长】5天(6小时/天)【课程大纲】第一篇 Java编程基础第1章 走进Java的世界1.1 Java发展历史1.2 Java语言特点1.3 Java可移植性1.4 搭建Java开发环境1.5 Java编程起步1.6 JShell交互式编程工具1.7 CLASSPATH环境属性第2章 程序基础概念2.1 程序注释2.2 标识符与关键字2.3 数据类型划分2.3.1 整型2.3.2 浮点型2.3.3 字符型2.3.4 布尔型2.3.5 String字符串2.4 运算符2.4.1 数学运算符2.4.2 关系运算符2.4.3 三目运算符2.4.4 逻辑运算符2.4.5 位运算符第3章 程序逻辑控制3.1 程序逻辑3.2 分支结构3.2.1 if分支结构3.2.2 switch开关语句3.3 循环结构3.3.1 while循环结构3.3.2 for循环结构3.3.3 循环控制语句3.3.4 循环嵌套第4章 方法4.1 方法基本定义4.2 方法重载4.3 方法递归调用第二篇 Java面向对象编程第5章 类与对象5.1 面向对象5.2 类与对象5.2.1 类与对象的定义5.2.2 对象内存分析5.2.3 对象引用传递分析5.2.4 引用传递与垃圾产生分析5.3 成员属性封装5.4 构造方法与匿名对象5.5 this关键字5.5.4 综合案例:简单Java类5.6 static关键字5.7 代码块5.7.1 普通代码块5.7.2 构造代码块5.7.3 静态代码块5.8 本章概要第6章 数组6.1 数组定义6.2 数组引用传递分析6.3 foreach输出6.4 二维数组6.5 数组与方法6.6 数组案例分析6.6.1 数组排序案例分析6.6.2 数组转置案例分析6.7 数组类库支持6.8 方法可变参数6.9 对象数组6.1 引用传递应用案例6.10.1 类关联结构6.10.2 自身关联结构6.10.3 合成设计模式6.11 数据表与简单Java类映射转换第7章 String类7.1 String类对象实例化7.2 字符串比较7.3 字符串常量7.4 两种实例化方式比较7.5 字符串常量池7.6 字符串修改分析7.7 主方法组成分析7.8 String类常用方法第8章 继承8.1 面向对象继承性8.2 覆写8.2.1 方法覆写8.2.2 方法覆写限制8.2.3 属性覆盖8.3 final关键字8.4 Annotation注解8.4.1 准确覆写8.4.2 过期声明8.4.3 压制警告8.5 面向对象多态性8.6 Object类8.6.1 获取对象信息8.6.2 对象比较第9章 抽象类与接口9.1 抽象类9.2 包装类9.2.1 装箱与拆箱9.2.2 数据类型转换9.3 接口9.3.1 接口基本定义9.3.2 接口定义加强9.3.3 定义接口标准9.3.4 工厂设计模式9.3.5 代理设计模式9.3.6 抽象类与接口区别9.4 泛型第10章 类结构扩展10.1 包10.2 访问控制权限10.3 构造方法私有化10.3.1 单例设计模式10.3.2 多例设计模式10.4 枚举第11章 异常的捕获与处理11.1 认识异常11.2 异常处理11.3 处理多个异常11.4 异常处理流程11.5 throws关键字11.6 throw关键字11.7 异常处理模型11.8 RuntimeException11.9 自定义异常类第12章 内部类12.1 内部类基本概念12.2 内部类相关说明12.3 static定义内部类12.4 方法中定义内部类12.5 匿名内部类12.6 Lambda表达式12.7 方法引用12.8 内建函数式接口12.9 链表第三篇 Java应用编程第13章 Eclipse开发工具13.1 Eclipse简介13.2 使用JDT开发Java程序13.3 debug调试工具13.4 JUnit测试工具第14章 多线程编程14.1 进程与线程14.2 Java多线程实现14.3 多线程常用操作方法14.4 线程的同步与死锁14.5 综合案例:生产者与消费者14.5.1 解决数据同步问题14.5.2 Object线程等待与唤醒14.6 优雅地停止线程14.7 后台守护线程14.8 volatile关键字第15章 常用类库15.1 StringBuffer类15.2 CharSequence接口15.3 AutoCloseable接口15.4 Runtime类15.5 System类15.6 Cleaner类15.7 对象克隆15.8 Math数学计算15.9 Random随机数第16章 I/O编程16.1 File文件操作16.2 字节流与字符流16.3 字符编码16.4 内存操作流16.5 管道流16.6 RandomAccessFile16.7 打印流16.8 System类对I/O的支持16.9 BufferedReader缓冲输入流第17章 网络编程17.1 网络编程简介17.2 Echo程序模型17.3 BIO处理模型17.4 UDP程序第18章 数据库编程18.1 JDBC简介18.2 连接Oracle数据库18.3 Statement数据操作接口18.4 PreparedStatement数据操作接口18.5 数据批处理18.6 事务控制第四篇 Java底层编程第19章 JUC并发编程19.1 JUC简介19.2 TimeUnit19.3 原子操作类19.4 ThreadFactory19.5 线程锁19.6 并发集合19.7 阻塞队列19.8 线程池第五篇 Java项目开发实战项目一 通讯录系统(JavaSwing+MySQL+Hibernate+BeautyEye外观样式实现)1.1开发背景1.2系统功能设计1.2.1系统功能结构1.2.2系统业务流程1.3创建项目1.3.1系统开发环境要求1.3.2创建新项目1.3.3导入资源1.4创建主窗体类1.5连接并读取数据库数据1.5.1搭建Hibernate框架1.5.2让主窗体表格显示数据1.6添加展示客户信息功能1.6.1创建展示客户信息窗体1.6.2给主窗体表格添加双击事件1.7添加用户登录功能1.7.1主窗体添加用户权限识别功能1.7.2创建用户登录窗体1.8添加修改客户信息功能1.8.1添加修改客户信息按钮1.8.2创建修改客户信息窗体类1.8.3添加主窗体按钮点击事件1.8.4添加修改客户信息窗体按钮点击事件1.8.5添加数据校验功能1.9添加新增客户信息功能1.9.1添加新增客户信息按钮1.9.2创建新增客户信息窗体1.9.3添加主窗体按钮点击事件1.10添加删除客户信息功能1.11美化窗体界面(选学)1.11.1BeautyEye插件简介1.11.2使用BeautyEye外观样式项目二 企业QQ(局域网版)(JavaSwing+Derby+多线程+Socket编程实现)2.1开发背景2.2系统功能设计2.2.1系统功能结构2.2.2系统业务流程2.3数据库设计2.4系统开发必备2.4.1系统开发环境要求2.4.2项目中的组织结构2.5公共类设计2.5.1数据库操作类2.5.2系统工具类2.6主窗体设计2.6.1创建主窗体2.6.2记录窗体位置2.7系统托盘模块设计2.7.1系统托盘模块概述2.7.2初始化系统托盘2.7.3设计系统托盘中的“打开”和“退出”快捷菜单2.7.4双击托盘弹出主窗体2.8系统工具模块设计2.8.1系统工具模块概述2.8.2设计系统工具选项卡2.8.3搜索新用户2.9用户管理模块设计2.9.1用户管理模块概述2.9.2用户列表设计2.9.3获取本地用户对象2.9.4实现用户的添加和删除功能2.10通信模块设计2.10.1通信模块概述2.10.2通信窗体设计2.10.3消息的接收和发送2.10.4显示消息记录2.10.5仿QQ抖动功能的实现2.10.6截图功能的实现 
• 刘晖:GIT操作培训
【课程特色】1.   课上采用案例式教学,通俗易懂,课下一对一辅导强化训练,学与练交叉进行强化记忆,你所要做的就是认真听,勤于问,乐于练。2.   清晰的知识结构,根据应用经验采用最优化授课模式。3.   内容充沛、详略得当,前后呼应。4.   讲师资历丰富,具有丰富的实践经验。5.   知识讲授+贴身案例+场景故事+互动讨论+现场演练+落地跟踪【课程时间】4天【课程大纲】第1章 入门本地版本控制系统集中式版本控制系统分布式版本控制系统Git基础命令行安装Git Git的首次配置第2章 Git基础2.1 获取Git仓库 132.1.1 在现有目录中初始化Git仓库 132.1.2 克隆现有仓库 142.2 在Git仓库中记录变更 142.2.1 查看当前文件状态 152.2.2 跟踪新文件 162.2.3 暂存已修改的文件 162.2.4 显示更简洁的状态信息 182.2.5 忽略文件 182.2.6 查看已暂存和未暂存的变更 192.2.7 提交变更 212.2.8 跳过暂存区 222.2.9 移除文件 232.2.10 移动文件 242.3 查看提交历史 252.4 撤销操作 302.4.1 撤销已暂存的文件 302.4.2 撤销对文件的修改 312.5 远程仓库的使用 322.5.1 显示远程仓库 322.5.2 添加远程仓库 332.5.3 从远程仓库获取和拉取数据 342.5.4 将数据推送到远程仓库 342.5.5 检查远程仓库 352.5.6 删除和重命名远程仓库 362.6 标记 362.6.1 列举标签 362.6.2 创建标签 372.6.3 注释标签 372.6.4 轻量标签 382.6.5 补加标签 382.6.6 共享标签 392.6.7 检出标签 392.7 Git别名 402.8 小结 41第3章 Git分支机制 423.1 分支机制简述 423.1.1 创建新分支 443.1.2 切换分支 453.2 基本的分支与合并操作 483.2.1 基本的分支操作 483.2.2 基本的合并操作 523.2.3 基本的合并冲突处理 533.3 分支管理 553.4 与分支有关的工作流 563.4.1 长期分支 573.4.2 主题分支 583.5 远程分支 593.5.1 推送 633.5.2 跟踪分支 643.5.3 拉取 663.5.4 删除远程分支 663.6 变基 663.6.1 基本的变基操作 663.6.2 更有趣的变基操作 693.6.3 变基操作的潜在危害 713.6.4 只在需要的时候执行变基操作 743.6.5 变基操作与合并操作的对比 753.7 小结 75第4章 Git服务器 764.1 协议 764.1.1 本地协议 764.1.2 HTTP协议 784.1.3 SSH协议 794.1.4 Git协议 804.2 在服务器上搭建Git 804.2.1 将裸仓库放置在服务器上 814.2.2 小型团队配置 824.3 生成个人的SSH公钥 834.4 设置服务器 844.5 Git守护进程 854.6 智能HTTP 874.7 GitWeb 884.8 GitLab 904.8.1 安装 904.8.2 管理 914.8.3 基本用法 934.8.4 协作 934.9 第三方托管选择 944.10 小结 94第5章 分布式Git 955.1 分布式工作流 955.1.1 集中式工作流 955.1.2 集成管理者工作流 965.1.3 司令官与副官工作流 975.1.4 工作流小结 975.2 为项目做贡献 985.2.1 提交准则 985.2.2 私有小型团队 1005.2.3 私有管理团队 1055.2.4 派生的公开项目 1105.2.5 通过电子邮件接受补丁的公开项目 1135.2.6 小结 1155.3 维护项目 1155.3.1 使用主题分支 1155.3.2 应用来自电子邮件的补丁 1165.3.3 检出远程分支 1185.3.4 确定引入内容 1195.3.5 整合所贡献的工作结果 1205.3.6 为发布版打标签 1255.3.7 生成构建编号 1265.3.8 准备发布 1265.3.9 简报 1275.4 小结 127第6章 GitHub 1286.1 账号设置与配置 1286.1.1 SSH访问 1296.1.2 头像 1306.1.3 电子邮件地址 1316.1.4 双因素身份验证 1326.2 为项目做贡献 1326.2.1 派生项目 1326.2.2 GitHub流程 1336.2.3 拉取请求的高级用法 1406.2.4 Markdown 1446.3 项目维护 1486.3.1 创建新仓库 1486.3.2 添加协作人员 1506.3.3 管理拉取请求 1506.3.4 提醒和通知 1556.3.5 特殊文件 1586.3.6 项目管理 1596.4 组织管理 1606.4.1 组织的基本操作 1606.4.2 团队 1606.4.3 审计日志 1626.5 GitHub脚本化 1626.5.1 钩子系统 1626.5.2 GitHub API 1666.6 小结 170第7章 Git工具 1717.1 选择修订版本 1717.1.1 单个修订版本 1717.1.2 提交范围 1757.2 交互式暂存 1777.2.1 暂存和取消暂存文件 1787.2.2 暂存补丁 1807.3 储藏与清理 1817.3.1 储藏工作成果 1817.3.2 灵活运用储藏 1837.3.3 从储藏中创建分支 1847.3.4 清理工作目录 1847.4 签署工作 1867.4.1 GPG简介 1867.4.2 签署标签 1867.4.3 验证标签 1877.4.4 签署提交 1877.4.5 所有人都得签署 1897.5 搜索 1897.5.1 git grep 1897.5.2 Git日志搜索 1907.6 重写历史 1927.6.1 修改最近一次提交 1927.6.2 修改多个提交消息 1927.6.3 重排提交 1947.6.4 压缩提交 1957.6.5 拆分提交 1957.6.6 超强命令:filter-branch 1967.7 重置揭秘 1977.7.1 三棵树 1987.7.2 工作流 1997.7.3 重置的作用 2037.7.4 利用路径进行重置 2057.7.5 压缩 2077.7.6 检出 2097.7.7 小结 2107.8 合并的高级用法 2117.8.1 合并冲突 2117.8.2 撤销合并 2207.8.3 其他类型的合并 2227.9 rerere 2257.10 使用Git调试 2307.10.1 文件标注 2307.10.2 二分查找 2327.11 子模块 2337.11.1 开始使用子模块 2337.11.2 克隆含有子模块的项目 2357.11.3 开发含有子模块的项目 2367.11.4 子模块技巧 2457.11.5 子模块的问题 2467.12 打包 2487.13 替换 2517.14 凭据存储 2577.14.1 底层实现 2587.14.2 自定义凭据缓存 2597.15 小结 261第8章 自定义Git 2628.1 配置Git 2628.1.1 客户端基本配置 2628.1.2 Git中的配色 2658.1.3 外部的合并与diff工具 2658.1.4 格式化与空白字符 2688.1.5 服务器配置 2708.2 Git属性 2708.2.1 二进制文件 2718.2.2 关键字扩展 2738.2.3 导出仓库 2768.2.4 合并策略 2778.3 Git钩子 2778.3.1 安装钩子 2778.3.2 客户端钩子 2788.3.3 服务器端钩子 2798.4 Git强制策略示例 2808.4.1 服务器端钩子 2808.4.2 客户端钩子 2858.5 小结 288第9章 Git与其他系统 2899.1 作为客户端的Git 2899.1.1 Git与Subversion 2899.1.2 Git与Mercurial 2989.1.3 Git与Perforce 3059.1.4 Git与TFS 3179.2 迁移到Git 3259.2.1 Subversion 3259.2.2 Mercurial 3279.2.3 Perforce 3299.2.4 TFS 3309.2.5 自定义导入工具 3319.3 小结 337第10章 Git内幕 33810.1 底层命令和高层命令 33810.2 Git对象 33910.2.1 树对象 34110.2.2 提交对象 34310.2.3 对象存储 34510.3 Git引用 34610.3.1 HEAD 34810.3.2 标签对象 34810.3.3 远程引用 34910.4 包文件 35010.5 引用规格 35210.5.1 推送引用规格 35410.5.2 删除引用 35410.6 传输协议 35410.6.1 哑协议 35510.6.2 智能协议 35610.6.3 协议小结 35910.7 维护与数据恢复 35910.7.1 维护 35910.7.2 数据恢复 36010.7.3 移除对象 36210.8 环境变量 36510.8.1 全局行为 36510.8.2 仓库位置 36510.8.3 路径规格 36610.8.4 提交 36610.8.5 网络 36610.8.6 差异与合并 36710.8.7 调试 36710.8.8 杂项 36910.9 小结 369附录A 其他环境中的Git 370附录B 在应用程序中嵌入Git 381附录C Git命令 390收起全部↑
• 刘晖:ERP系统在能源企业的应用
【课程特色】1.   课上采用案例式教学,通俗易懂,课下一对一辅导强化训练,学与练交叉进行强化记忆,你所要做的就是认真听,勤于问,乐于练。2.   清晰的知识结构,根据应用经验采用最优化授课模式。3.   内容充沛、详略得当,前后呼应。4.   讲师资历丰富,具有丰富的实践经验。5.   知识讲授+贴身案例+场景故事+互动讨论+现场演练+落地跟踪【课程时间】1天【课程大纲】第一部分    企业资源计划概述主要知识点:认识企业信息化发展历程系统认识企业的整体运营。主要授课内容:MRP、ERP的概念和应用企业的物流、资金流和信息流系统企业ERP模块构成案例解析:能源企业的ERP应用第二部分    ERP系统在国际大型能源公司的应用现状英国石油公司(BP)壳牌公司(Shell)中国石化第三部分    构建ERP系统的关键环节强化ERP的数据准备工作强化企业流程优化和再造强化员工培训,尽快融入ERP文化第四部分    成功实施ERP的效益分析ERP能够使企业决策者快速便捷地获得各种关键指标数据、统计和分析信息,对企业的运行情况有更清晰、完整、准确和快速的了解。ERP系统能够对企业各类原辅料、产品进行成本核算,将各项生产消耗进行合理分摊,做到企业精细化管理。通过ERP系统可以实时查询可用库存、客户信用和产品价格,为销售人员提供全方位信息。通过ERP的在人力资源上的应用,能够建立全员信息库,提高人工成本核算的精确性、合理性。第五部分    勘探与生产ERP系统实施项目案例解析第六部分    数据挖掘技术在ERP中的应用研究第七部分    某石化公司的ERP系统案例解析 

添加企业微信

1V1服务,高效匹配老师
欢迎各种培训合作扫码联系,我们将竭诚为您服务

Copyright © 2019-2024 . All Rights Reserved. 深圳鲸塔网络科技有限公司 版权所有

琼ICP备2024027448号