基本知识概述
Created: 2022-09-21 Wed 02:28
参与人数 | 0 |
---|---|
我选C语言! | 0 |
我选Java! | 0 |
教师姓名 | 李欣 |
工作单位 | 北方工业大学 信息学院 |
电子邮箱 | lx@ncut.edu.cn |
办公地点 | 瀚学楼1122 |
固定电话 | 010-8880-1685 |
本课程为计算机专业 选修 课程,授课对象为计算机科学与技术专业的本科生。
本课程将系统地介绍 Java语言程序设计 的 基本知识 、 基本方法 和 技巧 , 达到:
- 会用Java语言 编写 应用程序,能 阅读分析 用Java语言书写的程序
- 能较为熟练地上机 操作 和 调试
为后续的 软件工程 、 计算机网络 等专业课程的学习打下良好的理论和实践基础。
共计48学时
周次 | 周一 3-4节 | 周三 5-6节 |
---|---|---|
1 | [2022-08-31 Wed] 腾讯会议 | |
2 | [2022-09-05 Mon] 浩学东402 | [2022-09-07 Wed] 浩学东403 |
3 | [2022-09-14 Wed] 浩学东403 | |
4 | [2022-09-19 Mon] 浩学东402 | [2022-09-21 Wed] 浩学东403 |
5 | [2022-09-28 Wed] 浩学东403 | |
6 \(^*\) | [2022-10-03 Mon] 浩学东402 | [2022-10-05 Wed] 浩学东403 |
7 | [2022-10-12 Wed] 811 910 911 | |
8 | [2022-10-17 Mon] 浩学东402 | [2022-10-19 Wed] 811 910 911 |
* 本周国庆放假调休,将根据学校最新通知安排补课
周次 | 周一 3-4节 | 周三 5-6节 |
---|---|---|
9 | [2022-10-26 Wed] 811 910 911 | |
10 | [2022-10-31 Mon] 浩学东402 | [2022-11-02 Wed] 811 910 911 |
11 | [2022-11-09 Wed] 811 910 911 | |
12 | [2022-11-14 Mon] 浩学东402 | [2022-11-16 Wed] 811 910 911 |
13 | [2022-11-23 Wed] 811 910 911 | |
14 | [2022-11-28 Mon] 浩学东402 | [2022-11-30 Wed] 811 910 911 |
15 | [2022-12-07 Wed] 浩学东403 | |
16 | [2022-12-12 Mon] 浩学东402 | [2022-12-14 Wed] 浩学东403 |
答疑
- 时间 :每周三7-8节
- 地点 :瀚学楼1122 根据情况也可线上进行
Figure 1: 教材封面
书名 | 作者 | 出版社 | 出版时间 |
---|---|---|---|
Java程序设计(第2版) | 唐大仕 | 清华大学出版社 | 2015.02 |
Core Java (Volume I & II), \(10^{th}\) edition | (美)Horstmann, Gary Cornell | Prentice Hall | 2015.11 |
Thinking in Java, \(4^{th}\) edition | (美)Bruce Eckel | Prentice Hall | 2006.02 |
版本 | 发布日期 |
---|---|
JDK Beta | 1995年 |
JDK1.0 | 1996年1月23日 |
JDK 1.1 | 1997年2月19日 |
J2SE 1.2 | 1998年12月8日 |
J2SE 1.3 | 2000年5月8日 |
J2SE 1.4 | 2002年2月6日 |
J2SE 5.0 | 2004年9月30日 |
Java SE 6 | 2006年12月11日 |
Java SE 7 | 2011年7月28日 |
Java SE 8 | 2014年3月18日 |
版本 | 发布日期 |
---|---|
Java SE 9 | 2017年9月21日 |
Java SE 10 | 2018年3月20日 |
Java SE 11 | 2018年9月25日 |
Java SE 12 | 2019年3月19日 |
Java SE 13 | 2019年9月17日 |
Java SE 14 | 2020年3月17日 |
Java SE 15 | 2020年9月15日 |
Java SE 16 | 2021年3月16日 |
Java SE 17 | 2021年9月14日 |
Java SE 18 | 2022年3月22日 |
参考教材
Java Development Kit JDK Java开发工具包
Java Software Development Kit JSDK Java软件开发工具包
Java Runtime Environment JRE Java运行环境
Java Virtual Machine JVM Java虚拟机
Java Platform, Standard Edition Java SE
Java Platform, Enterprise Edition Java EE
Java Platform, Micro Edition Java ME
官方网站 | 备注 |
---|---|
http://java.sun.com/ | Stanford University Network (Sun) 时代 |
https://www.oracle.com/java/technologies/ | 2009年4月被Oracle收购后 |
Figure 2: JDK下载页面( URL: https://www.oracle.com/java/technologies/downloads/ )
For Windows
wget https://download.oracle.com/java/18/latest/jdk-18_windows-x64_bin.zip
unzip jdk-18_windows-x64_bin.zip
ls jdk-18.0.2.1/
wget -Uri https://download.oracle.com/java/18/latest/jdk-18_windows-x64_bin.zip -OutFile jdk-18_windows-x64_bin.zip -Verbose
Expand-Archive .\jdk-18_windows-x64_bin.zip -DestinationPath .
# or use 7-zip (https://www.7-zip.org/)
ls .\jdk-18.0.2.1\
wget https://download.oracle.com/java/18/latest/jdk-18_windows-x64_bin.zip
unzip jdk-18_windows-x64_bin.zip
ls jdk-18.0.2.1/
# LICENSE* README* bin/ conf/ include/ jmods/ legal/ lib/ release*
wget https://download.oracle.com/java/18/latest/jdk-18_windows-x64_bin.zip.sha256
sha256sum jdk-18_windows-x64_bin.zip
# 13298d390892ff6279ddb70bf364dbb3ff62814551997ba79c364f36c36e377a jdk-18_windows-x64_bin.zip
cat jdk-18_windows-x64_bin.zip.sha256
# 13298d390892ff6279ddb70bf364dbb3ff62814551997ba79c364f36c36e377a
wget -Uri https://download.oracle.com/java/18/latest/jdk-18_windows-x64_bin.zip.sha256 -OutFile jdk-18_windows-x64_bin.zip.sha256 -Verbose
(Get-FileHash -Algorithm sha256 .\jdk-18_windows-x64_bin.zip).Hash.toLower()
# 13298d390892ff6279ddb70bf364dbb3ff62814551997ba79c364f36c36e377a
cat jdk-18_windows-x64_bin.zip.sha256
# 13298d390892ff6279ddb70bf364dbb3ff62814551997ba79c364f36c36e377a
For Linux
wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz
tar xvf jdk-18_linux-x64_bin.tar.gz
cd jdk-18.0.2.1/
For macOS
wget https://download.oracle.com/java/18/latest/jdk-18_macos-x64_bin.tar.gz
tar xvf jdk-18_macos-x64_bin.tar.gz
cd jdk-18.0.2.1.jdk/
For Ubuntu
javac
# Command 'javac' not found, but can be installed with:
#
# sudo apt install openjdk-11-jdk-headless # version 11.0.16+8-0ubuntu1~20.04, or
# sudo apt install default-jdk # version 2:1.11-72
# sudo apt install ecj # version 3.16.0-1
# sudo apt install openjdk-13-jdk-headless # version 13.0.7+5-0ubuntu1~20.04
# sudo apt install openjdk-16-jdk-headless # version 16.0.1+9-1~20.04
# sudo apt install openjdk-17-jdk-headless # version 17.0.4+8-1~20.04
# sudo apt install openjdk-8-jdk-headless # version 8u342-b07-0ubuntu1~20.04
sudo apt install default-jdk
apt list | grep openjdk
# openjdk-11-dbg/focal-updates,focal-security 11.0.16+8-0ubuntu1~20.04 amd64
# openjdk-11-demo/focal-updates,focal-security 11.0.16+8-0ubuntu1~20.04 amd64
# openjdk-11-doc/focal-updates,focal-security 11.0.16+8-0ubuntu1~20.04 all
# openjdk-11-jdk-headless/focal-updates,focal-security,now 11.0.16+8-0ubuntu1~20.04 amd64 [インストール済み、自動]
# openjdk-11-jdk/focal-updates,focal-security,now 11.0.16+8-0ubuntu1~20.04 amd64 [インストール済み、自動]
# openjdk-11-jre-dcevm/focal 11.0.3+1-1 amd64
# openjdk-11-jre-headless/focal-updates,focal-security,now 11.0.16+8-0ubuntu1~20.04 amd64 [インストール済み、自動]
# openjdk-11-jre-zero/focal-updates,focal-security 11.0.16+8-0ubuntu1~20.04 amd64
# openjdk-11-jre/focal-updates,focal-security,now 11.0.16+8-0ubuntu1~20.04 amd64 [インストール済み、自動]
# openjdk-11-source/focal-updates,focal-security 11.0.16+8-0ubuntu1~20.04 all
# openjdk-13-dbg/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-demo/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-doc/focal-updates 13.0.7+5-0ubuntu1~20.04 all
# openjdk-13-jdk-headless/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-jdk/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-jre-headless/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-jre-zero/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-jre/focal-updates 13.0.7+5-0ubuntu1~20.04 amd64
# openjdk-13-source/focal-updates 13.0.7+5-0ubuntu1~20.04 all
# openjdk-16-dbg/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-demo/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-doc/focal-updates,focal-security 16.0.1+9-1~20.04 all
# openjdk-16-jdk-headless/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-jdk/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-jre-headless/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-jre-zero/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-jre/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
# openjdk-16-source/focal-updates,focal-security 16.0.1+9-1~20.04 all
# openjdk-17-dbg/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-demo/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-doc/focal-updates,focal-security 17.0.4+8-1~20.04 all
# openjdk-17-jdk-headless/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-jdk/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-jre-headless/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-jre-zero/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-jre/focal-updates,focal-security 17.0.4+8-1~20.04 amd64
# openjdk-17-source/focal-updates,focal-security 17.0.4+8-1~20.04 all
Figure 3: 设置
Or WSL2, macOS, Ubuntu…
export CLASSPATH=.:/home/username/your-classpath/
# or
# javac MySQLDemo.java
java -cp .:mysql-connector-java-8.0.26.jar MySQLDemo # -classpath or --class-path
参考教材
下载链接
https://www.eclipse.org/downloads/
https://www.eclipse.org/downloads/packages/release/2022-06/r/eclipse-ide-java-developers
参考教材
// MyJavaApplication.java
import java.io.*;
public class MyJavaApplication
{
public static void main(String args [])
{
System.out.println("Hello, Java World!");
} // 行注释:end of main method
} // end of class
参考教材
javac MyJavaApplication.java
java MyJavaApplication
# Hello, Java World!
// MyApplication2.java
import java.io.*;
public class MyApplication2
{
public static void main(String args [])
{
System.out.println(UserClass.msMessage);
}
}
class UserClass
{
static String msMessage = "Message from ...";
}
参考教材
ls -l
# 合計 20
# -rw-rw-r-- 1 x x 475 8月 25 00:45 MyApplication2.class
# -rw-rw-r-- 1 x x 247 8月 25 00:45 MyApplication2.java
# -rw-rw-r-- 1 x x 446 8月 25 00:45 MyJavaApplication.class
# -rw-rw-r-- 1 x x 234 8月 25 00:45 MyJavaApplication.java
# -rw-rw-r-- 1 x x 325 8月 25 00:45 UserClass.class
参考教材
%%{init: { 'theme': 'forest', 'fontFamily': 'Times New Roman, KaiTi' }}%%
graph TB
java["Java语言的特点"]
java --- a["平台无关性"]
java --- b["面向对象"]
java --- c["安全稳定"]
java --- d["支持多线程"]
java --- e["简单易学"]
考察项 | 与C和C++相比Java的特点 |
---|---|
全局变量 | 全局变量封装在类中,更加 安全 |
条件转移指令 | 没有 goto 语句,提高了程序的 可读性 |
指针 | 没有指针,数组主要通过 类 来实现 |
内存管理 | 有 自动垃圾回收 机制,避免了系统崩溃 |
数据类型 | 数据类型分配固定长度,具有 一致性 、 平台无关性 和 可移植性 |
类型转换 | 转换时进行严格的相容性检查 |
头文件 | 改用更先进的包来管理 |
编译预处理 | 不支持 |
结构体和共用体 | 不支持 |
常量 | 定义方式不同 |
多重继承 | 接口 |
异常处理 | 更 健壮 |
面向对象 | 纯面向对象,完全基于 类 、 对象 |
参考教材 第一章 、 第二章 与 第十章 内容,解答以下题目。
java
与 javac
命令的用途。I love Java!
或 I don't like Java.
或
I don't want to tell you if I like Java.