读后笔记 -- Java核心技术(第11版 卷I )Chapter1-2 Java 程序设计
本书源码(下载对应版本的代码):https://horstmann.com/corejava/index.html
Java 17 API 文档:https://docs.oracle.com/javase/17/docs/api
配套视频讲解(卷一):https://space.bilibili.com/442631500/favlist?fid=262105&ftype=collect&ctype=21
(卷二):https://space.bilibili.com/1133349031/channel/collectiondetail?sid=296478
Chapter1. Java程序设计概述
1.2 Java“白皮书”的关键术语
Java: Good programming language + Efficient and Secure execution environment + Huge library
11个关键术语:
- 1)简单性: 去除了C++的头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等;
- 2)面向对象: 重点放在数据(对象)和对象的接口上。Java与C++的主要不同点在多重继承,Java 使用的是更简单的接口概念;
- 3)分布式: 有一个丰富的例程库,用于处理像 HTTP 和 FTP 之类的 TCP/IP 协议。Java 能简便地通过 URL 来访问网络对象;
- 4)健壮性: 和 C++ 最大的不同在于 Java 采用的指针模型可以消除重写内存和损坏数据的可能性;
- 5)安全性: 适用于 网络/分布式 环境。构建了防病毒、防篡改的系统(包括:a. 运行时堆栈溢出;b. 破坏自己的进程空间之外的内存;c. 未经授权读写文件);
- 6)体系结构中立:编译器通过生成与特定的计算机体系机构无关的字节码指令;“JVM”;
- 7)可移植性: (1)规定了数据类型的固定大小,故比C++可移植性好;(2)为系统组成部分的类库,定义了可移植性的接口;
- 8)解释性: Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码;
- 9)高性能: Java 即时编译器 JIT。参见另外一篇文章 https://www.cnblogs.com/bruce-he/p/15699282.html
- 10)多线程性: 多线程带来更好的交互响应和实时行为;是第一个支持并发程序设计的主流语言
- 11)动态性: Java 比 C/C++ 更具动态性;
1.4 Java 发展简史
重要版本:
- 5.0:添加 泛型类型、"for each"循环、自动装箱、注解
- 8.0:包含了“函数式”编程
- 9.0:模块
Spring 和 JDK 的对应关系:
Spring Framework 6.0.x:JDK 17-21(预期)
Spring Framework 5.3.x:JDK 8-19(预期)
Spring Framework 5.2.x:JDK 8-15
Spring Framework 5.1.x:JDK 8-12
Spring Framework 5.0.x:JDK 8-10
Spring Framework 4.3.x:JDK 6-8
Spring Framework 3.x: JDK 5
Chapter 2. Java 程序设计环境
2.1 安装 Java 开发工具包
2.1.1 下载 JDK
Java 术语 | ||
术语名 | 缩写 | 解释 |
Java Development Kit | JDK | 编写 Java 程序的程序员使用的软件 |
Java Runtime Environment | JRE | 运行 Java 程序的用户使用的软件 |
Server JRE | --- | 在服务器上运行 Java 程序的软件 |
Standard Edition | SE | 用于桌面或简单服务器应用的 Java 平台 |
Enterprise Edition | EE | 用于复杂服务器应用的 Java 平台 |
Micro Edition | ME | 用于手机和其他小型设备的 Java 平台 |
Java FX | --- | 用于图形化用户界面的一个替代工具包,在 Oracle 的 Java SE 发布版本中提供 |
OpenJDK | --- | Java SE 的一个免费开源实现,不包含浏览器集成或 Java FX |
Java 2 | J2 | 过时的术语,用于描述1998年 ~ 2006年间的 Java 版本 |
Update | u | Oracel 的术语,表示 bug 修正的版本 |
NetBeans | --- | Oracle 的集成开发环境 |
下载注意事项:
- 1)JDK用于开发,而不是JRE;
- 2)Windows(选择 x32/x64)或 Linux(rpm 或 .tar.gz 版本【建议】)
- 3)Java 10 之前有 JRE,之后没有。需要额外生成。
// 手动生成 JRE。进入 jdk 目录 jdk-17.0.1> bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
2.1.3 源文件和文档
1. 源文件
- src.zip,位置 在 \jdk-17.0.5\lib
- jdk 根目录下新建 javasrc,将上面的 .zip 解压放在该目录
2. 文档
- 在线找文档 https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html, 名称为: jdk-17.0.6_doc-all.zip
- 上述 .zip 解压后的 docs 文件夹可重命名为 javadoc,然后放在 jdk 根目录下
2.2 设置 JDK
1)环境变量设置(!!! 因为某些软件版本要求,需要将 JDK 路径放在 JRE 前面)
1)windows(路径中最好不要有空格)-> 环境变量:
JAVA_HOME:c:\Java\jdk_9.0.1
PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
2)Linux -> /etc/profile:
export JAVA_HOME=/home/data/tools/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
2.3 命令行运行
> cd corejava\v1ch02\Welcome
> javac Welcome.java
> java Welcome
提醒:这个地方是类的名称,不能写成 Welcome.class,否则会出现 “不到或无法加载主类”2.4 使用集成工具
下图使用 IJ,
后面一直 Next 到 Finish。