1、Java程序设计从初学者到架构师2018.05.19 北京Java程序设计JavaJava程序设计程序设计程序设计与数据结构面向对象分析与设计Web开发技术企业级应用系统体系架构大一程序设计与数据结构 1 理解计算机描述世界的方式 数字是如何表示的? 用有限的字节数(位数)表示光滑连续的数轴“原罪” 浮点数的近似性会带来很多意向不到的结果大一程序设计与数据结构 1 理解计算机描述世界的方式 数据类型意味着什么? 数据在内存中的存储方式以及可以对它们执行的操作 内存中同样的字节,按照不同的方式类型读取,会解释成不同的数据大一程序设计与数据结构 1 理解面向对象程序语言描述世界的方式 什么是类?
2、抽象与封装复用 按照具体的需求抽象自定义数据类型Class Movie: String title String heroesList String villainClass Movie: String producer String cast int boxOffice大一程序设计与数据结构 1 理解 Java 程序设计的基本语法与特性 程序控制流 顺序、循环、选择 方法复用 控制流的转移 构造器 作用域-全局/局部变量 类复用 可视性 实例成员与类成员大一程序设计与数据结构 1 理解 Java 程序设计的高级语法特性 接口与抽象类 接口实现与类的继承 内部类 内部类与外围类 静态内部类 I
3、/O操作 流 文本文件与二进制文件的I/O 对象的I/O与对象序列化 URL流的I/O大一程序设计与数据结构 1 用 Java 开发小程序计算器(参考C+编程原理与实践) 快速原型与持续迭代改进 命令行计算器 迭代一:支持加减或乘除操作 迭代二:支持四则混合运算 迭代三:支持带括号的四则混合运算 迭代四:支持定义和存储变量值 图形化计算器 迭代五:类职责分离的计算器 迭代六:接口与实现分离的计算器Token_streamTokenCalculatorCalculatorGUImain大一程序设计与数据结构 2 讲解 Java 各种集合类型数据结构 抽象集合类与接口类 多重实现和单根继承 集合类
4、 Vector、ArrayList、LinkedList HashSet、LinkedHashSet、TreeSet ArrayQueue HashMap、TreeMap、LinkedHashMap 迭代器 接口与实现分离的示例 内部类的示例大一程序设计与数据结构 2 讲解 Java 各种集合类型数据结构 递归 数学上很自然的表示方式 尾递归 递归与循环的互换 树的遍历0101nnfactorialnn n) factorial(大一程序设计与数据结构 2 讲解 Java 各种集合类型数据结构 深复制 vs 浅复制 Java的深复制途径Cloneable 泛型 参数化类型 泛型类、泛型接口、泛
5、型方法 树 二叉树 B/B+树 实践 构建一个小型数据库系统 带有B+树索引大二面向对象程序设计 面向对象设计原则以 Java 为例 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 开-闭原则大二面向对象程序设计 面向对象设计模式以 Java 为例PurposeCreationalStructuralBehavioralScopeClassFactory MethodAdapterInterpreterTemplate MethodObjectAbstract FactoryBuilderPrototypeSingletonAdapterBridgeCompositeDecorator
6、FacadeProxyFlyweightChain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor大二面向对象程序设计 面向对象设计模式可复用的解决方案大二Web开发技术 Web前端 HTML5 CSS3 JavaScript React Ajax 前端构建化 Webpack 前端模块化大二Web开发技术 Web后端 Java EE 访问数据库 JDBC访问关系型数据库 处理客户端请求 Servlet和Filter 业务逻辑的实现 Service大二Web开发技术 Web后端 Java 框架
7、 ORM Hibernate、iBatis IoC Spring MVC Spring-MVC、Struts Maven 构建项目大二Web开发技术 Web后端 NoSQL MongoDB Neo4j RocksDB 通过Java操作各种数据库 理解各种数据库的适用场景大二Web开发技术 课程实践:e-BookStore Struts: MVC Spring: IoC Hibernate: ORM MVC Model Entities DAO interface DAO IoC Services interface IoC Services Configurations19大二Web开发技术
8、课程实践:e-BookStore Struts: MVC Spring: IoC Hibernate: ORM MVC Controllers Struts Actions20大二Web开发技术 课程实践:e-BookStore Struts: MVC Spring: IoC Hibernate: ORM MVC Views CSS Fonts JS JSP SQL WEB-INF/web.xml21大三企业级应用系统体系架构 事务管理 ACID 声明式事务控制 事务隔离级别 分布式事务 两阶段提交协议大三企业级应用系统体系架构 消息机制 JMS消息服务 异步通信 消息队列/主题 持久性预订 Kafka大三企业级应用系统体系架构 通信机制 RMI JMS Ajax WebSocket Web Service 多线程大三企业级应用系统体系架构 缓存 Redis MemCached 搜索 Lucene Elasticsearch大三企业级应用系统体系架构 集群 应用服务器集群 数据库集群 Hadoop HBase HDFS MapReduce & YARN Spark Storm从初学者到架构师 Java语言只是程序设计思想的载体 抽象与封装 接口与实现分离 快速原型与不断求精 代码复用 模块化和构件化 需要不断地实践与练习 实践出真知谢谢大家!