本课程主要讲授Java核心技术进阶部分,以Java多方位应用实践为主。本课程一共包含10章,分成52个视频,每章3-6个视频不等。课程主要内容包括:构建工具Maven,单元测试工具JUnit,高级文件处理、多线程和并发、网络、邮件、数据库、RMI、Java和其他语言交互等。本课程注重Java应用讲解,并通过大量例子程序进行辅助理解。学生学习本课程后,可以编写实用的Java程序,有能力编写涵盖大部分软件功能需求的程序。
能够根据软件需求,能够使用Java程序开发具体应用软件。
第零章 导学章
第一节 导学
第一章 Maven
第一节 构建工具
第二节 Maven概念和实战
第一章 Maven 作业
第二章 单元测试和JUnit
第一节 单元测试
第二节 JUnit
第二章 单元测试和JUnit 作业
第三章 高级文本处理
第一节 Java字符编码
第二节 Java国际化编程
第三节 Java高级字符串处理
第三章 高级文本处理 单元作业
第四章 高级文件处理
第一节 XML简介
第二节(1) XML解析(DOM方法)
第二节(2) XML解析(SAX方法)
第二节(3) XML解析(Stax方法)
第三节 JSON简介及解析
第四章 高级文件处理作业
第四章 高级文件处理(续)
第四节 图形图像简介及解析
第五节 条形码和二维码简介及解析
第六节 Docx简介及解析
第七节 表格文件简介及解析
第八节 PDF简介及解析
第四章 高级文件处理(续) 单元作业
第五章 Java多线程和并发编程
第一节 多进程和多线程简介
第二节 Java多线程实现
第三节 Java多线程信息共享
第四节 Java多线程管理(1)
第四节 Java多线程管理(2)
第五章 Java多线程和并发编程 单元作业
第五章 Java多线程和并发编程(续)
第五节 Java并发框架Executor
第六节 Java并发框架Fork-Join
第七节 Java并发数据结构
第八节 Java并发协作控制(1)
第八节 Java并发协作控制(2)
第九节 Java定时任务执行
第五章 Java多线程和并发编程(续) 单元作业
第六章 Java网络编程
第一节 网络基础知识
第二节 Java UDP 编程
第三节 Java TCP 编程
第四节 Java HTTP 编程
第五节 Java HTTP 编程 (HttpClient)
第六章 Java网络编程 单元作业
第六章 Java网络编程(续)
第六节 Java NIO 编程
第七节 Java AIO 编程
第八节 Netty编程
第九节 邮件基础知识
第十节 Java Mail编程
第六章 Java网络编程(续)
第七章 Java 数据库编程
第一节 数据库和SQL
第二节 JDBC基本操作
第三节 JDBC高级操作
第四节 数据库连接池
第七章 Java 数据库编程 作业
第八章 Java混合编程
第一节 Java调用Java程序(RMI)
第二节 Java调用C程序(JNI)
第三节 Java调用Javascript程序(Nashorn)
第四节 Java调用Python程序(Jython)
第五节 Java调用Web Service
第六节 Java调用命令行
第八章 Java混合编程 单元作业
第九章 Java案例实践和总结
第一节 Java案例实践
第二节 Java核心技术进阶总结
已经学过Java基础知识或者其他一门基础程序语言的学生。
1. Java核心技术 卷I:基础知识(第十版),Cay S Horstmann 著,周立新等译,机械工业出版社,北京,2016.
2. Java核心技术 卷II:高级特性(第十版),Cay S Horstmann 著,陈昊鹏译,机械工业出版社,北京,2017.
常见问题
1. 为什么没有Java开发桌面图形应用的部分,比如AWT和Swing等?
答:很遗憾,Java实在是不适合用来开发桌面应用。Java自身发布的三个版本的GUI开发包:AWT、Swing、JavaFX,可以跨平台(统一观感),但根本没有普及起来,性能存在较大的问题。Eclipse发布了SWT和JFace,性能上是提升了,但是不能跨平台。个人觉得:如果开发的软件需要跨平台,比如在Windows、Linux、Mac上都需要使用,那么可以考虑采用Java进行开发;如果是单独Windows平台,还是采用其他语言开发,效率更快,界面更友好。因此,在本课程里面,我们不涉及桌面图形应用开发。
2. 这么多第三方库,这么多API文档,我需要背诵吗?
答:不需要,有印象即可。需要的时候再通过搜索引擎“捡”起来。要学会查询和使用API。就像一本新华字典,不可能都背住,但是学会查询方法即可。
3. 如何甄选可靠的第三方库?
答:Github,mvnrepository.com,sourceforge.net,www.open-open.com等开源网站上会列出多种第三方库信息,包括使用排名、发布日期、更新频率等。这些信息都可供参考。
4. 那如果都依赖于第三方库,那程序还需要写吗?
答:当然需要写。第三方库只是完成单一的功能,自己还需要写程序,完成具体的业务逻辑。如果没有合适的第三方库,也要自己完成相应的功能。
5. 需要什么基础才能学这门课程?
答:建议先修过Java的基础课程,了解面向对象思想,掌握类/对象/继承/多态/抽象类/接口等概念,有一定的程序阅读和编程经验为佳。