本课程的先修课程:最好是学过一门程序设计语言(如C、C++、C#、Python、VB等任何一门语言)。
本课程是在已有的基础上让学习者能够以Java语言编写具有一定规模、综合性的应用程序。对后面的操作系统、编译原理、数据库等课程来说,该课程是一个承上启下的课程。
从课时内容而言,主要有三部分:
第一部分是Java语言部分,包括Java概述,简单的Java程序,变量、语句、数组,类、包、接口,深入理解Java语言,异常处理等。这部分内容的目的是掌握Java语言的语法,能够较为深入理解Java语言机制,掌握Java语言面向对象的特点。
第二部分是Java的类库及应用,包括工具类及常用算法、多线程、流、文件及基于文本的应用、图形用户界面、网络、多媒体和数据库编程等,这部分的目标是掌握JavaSE中基本的API,掌握在集合、线程、输入输出、图形用户界面、网络等方面的应用。
第三部分是关于如何写出出高质量的代码,包括集成开发环境的使用,单元测试、日志、质量管理工具的使用,掌握重构和设计模式,这部分的目标是综合应用本课程的知识,能够编写有一定规模的应用程序,养成良好的编程习惯,能够编写高代码的质量。
课程一方面重视语言的基础和原理,另一方面注意实际编程能力的培养。
课程中除了视频、讨论区外,每周都有一些测验、还有一些小的作业,在课程结束还要求开发有一定工作量、有中等难度的项目。
本课程为国家精品在线开放课程;是教育部-华为“智能基座”精品慕课之一。自2021年秋季学期起,该课程加入 教育部-华为“智能基座” 精品慕课建设项目, 将Java与华为资源有机结合起来,包括Java在毕昇JDK、鲲鹏平台、华为云、鸿蒙、欧拉、华为认证、人才在线、教育资源等方面的体现与应用。具体所在的章节如下:
1.1 华为毕昇JDK 及 鲲鹏计算产业
2.4 华为云平台上进行Java程序的编译与运行
5.9 华为鲲鹏平台上 Java 调用 C 程序
8.6 Java线程原理及其在鲲鹏上的实现
8.6 JVM内存调优及其在鲲鹏上的应用
9.2 华为OpenEuler (Linux)平台上的文件与目录
9.4 华为鲲鹏平台上开发Java资金管理小系统
10.6 Java移动开发与鸿蒙应用
11.1 华为鲲鹏平台上用socket开发多人在线聊天室
11.3 华为鲲鹏平台上开发Java Web小应用
12.5 Java认证考试及华为的教育资源
本课程在“阿里云计算有限公司教育部产学合作协同育人项目”的支持下进行了升级,补充了18个实验及11个视频。所有的实验都可以在阿里云起实验室免费实验,所有补充的视频都可以在慕课中免费观看。
这18个实验是:
1 阿里云起实验室的使用
2 阿里云平台上进行Java程序的编译与运行
3 使用阿里的JDK:Dragonwell
4 使用Java中的数组:埃氏筛法求素数
5 Java中面向对象的分析与设计:银行系统
6 Java中类的初始化过程
7 Java中stream及lambda表达式
8 自定义异常
9 自定义集合:使用链表
10 阿里云Arthas调优工具的使用
11 文本与正则表达式的应用:背单词小软件
12 GUI组件、布局与事件:排块游戏
13 常用组件应用示例:文本编辑器
14 用 JDBC 访问Sqlite数据库:小小通讯录
15 使用阿里云RDS数据库
16 使用阿里云OSS进行文件的云存储
17 代码重构及阿里Java代码规约扫描插件P3C的使用
18 文本、数据库、图形用户界面的综合应用
补充的视频如下:
补充视频:阿里开源JDK Dragonwell
补充视频:阿里弹性云服务器ECS
补充视频:龙蜥开源操作系统Anolis OS
补充视频:阿里云存储OSS
补充视频:阿里开源Fast Json 2
补充视频:阿里云数据库RDS 及PolarDB
补充视频:消息队列RocketMQ
补充视频:阿里开源中间件Spring Cloud Alibaba
补充视频:阿里开源组件ByteKit及JVM-Sandbox
补充视频:阿里Java编码惯例及阿里的Java开发手册
补充视频:阿里云培训与认证
最好是学过一门程序设计语言(如C或C++或计算概论等)。
唐大仕《Java程序设计(第3版)》(获第六届全国高校出版社优秀畅销书奖、北京大学优秀教材奖) 清华大学出版社, 北方交通大学大出版社,北京大学信息技术系列教材。
ISBN:9787512145269
参考资料还包括:
Java官网 http://www.oracle.com/java/
JavaSE API文档 http://docs.oracle.com/en/java/javase/
与华为有关的资料包括:
毕昇JDK http://gitee.com/openeuler/bishengjdk-8
OpenEuler系统 http://gitee.com/openeuler
openEuler官网 http://www.openeuler.org/zh/
openEuler开源社区 http://gitee.com/openeuler 华为云 http://www.huaweicloud.com/
华为公有云:http://www.hwclouds.com
华为软件开发云:http://www.hwclouds.com/devcloud
华为人才在线 http://e.huawei.com/cn/talent
华为智能基座课程建设方案 http://edu.huaweicloud.com/roadmap/colleges.html
“智能基座”产教融合协同育人基地 http://edu.huaweicloud.com/activity/colleges.html?ggw_qt
鲲鹏社区 http://www.hikunpeng.com/zh/
1. Java是什么样的语言?
答:Java语言是一门用途广泛的、面向对象的语言。Java语言可以编写桌面应用、手机应用及企业应用。Java简洁优雅,易于学习。
2. 没有学过编程,能学吗?
答:本课程的先修课程:最好是学过一门程序设计语言(如C、C++、Java、Python、VB等任何一门语言)。
3. 本课程系统吗?
答:会的。本课程要讲Java语言,对语言的一些机制会详细讲解,所以具有系统性。
4. 本课程实用吗?
答:实用。本课程要讲Java语言在文本、文件、窗体界面、图形、数据库、多线程、并行编程方面的应用。还会讲到编好代码的经验与技巧,包括面向对象的思想、软件工程中常用的方法。课程中有很多的趣的示例哟。
5. 主要讲桌面应用还是手机应用?
答:本课程要讲桌面应用。由于受课时的限制,本课程不讲手机应用,不过,除了界面不同,在文件、图形、数据库、多线程、并行编程方面手机应用与桌面应用是一样的。
6. 本课程难学吗?
答:本课程会循序渐进地讲解,对于大部分同学来说,是可以做到的。针对基础较弱的同学,我们会补充一些基础材料;针对基础很好的同学,我们也会提供一些深入的材料(不作为考试要求)。
7. 本课程会大量使用poj吗?
答:本课程在基本知识阶段会使用PoJ(在线自动判分)这种方式来提交作业,但是后面的程序要求综合应用、要求使用良好的设计模式、养成良好的编程习惯,这些不是POJ所能判断的,所以不太会使用POJ。我们会更多地使用“作业互评”的方式让大家互相学习、互相借鉴。
8. 讲这门课的大仕老师如何啊?
答:传说中的大仕老师,平易近人。看他的照片,不帅;听他的声音,不亮;看来,他只剩下一个办法:将课讲好!