Skip to content

Commit d259398

Browse files
committed
初步增添,折叠框等有待调整
1 parent 5c1d207 commit d259398

7 files changed

+3332
-0
lines changed

docs/languages/java/index.md

Whitespace-only changes.
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# Tour of Java: Chapter 0 Introduction & Installation
2+
3+
## 前置知识
4+
5+
+无。
6+
7+
## Introduction to Java Platform
8+
9+
### What is Java
10+
11+
- Java 是一门*高层次**强类型**编译型**基于类的面向对象**通用*编程语言。
12+
- Java 保证*一次编写,到处运行 (write once, run anywhere)*,即Java编译出的字节码文件可以保证在任何系统上的 Java 运行时环境运行。
13+
- Java 保证向前兼容性。
14+
- Java 是一门*类 C 语言*
15+
- 从 1995 年开始,历史悠久的 Java 平台积累了兼具广度和可靠性的生态系统和开发者社区。
16+
- Java 至今仍然是最流行、最知名、使用最广的编程语言之一。
17+
18+
19+
20+
### History of Java
21+
22+
- 1991, *James Gosling*, C++ and Oak
23+
- 1995, *Sun Microsystems* and Java 1.0
24+
- 1996, Dynamic Web & Java Applets
25+
- 2006, Java EE, Java SE, Java ME
26+
- 2007, Java visual machine is opened under GPL
27+
- 2009, Sunset of the *Sun*
28+
- 2014, Java 8 reached General Availability
29+
- 2018, Java 10 started to adopt Time-Based Release Versioning
30+
- Today, Java 17 is current LTS, Java 18 GA, Java 19 RDP 2
31+
32+
33+
34+
### Why Java
35+
36+
- Easy!
37+
- Cross-Platform
38+
- Rich and Reliable Ecosystem
39+
- Forward evolution with backwards compatibility
40+
- Performance
41+
42+
43+
44+
### Why NOT Java
45+
- Performance ?
46+
- 相对贫弱的语法特性削弱了对程序员的吸引力。
47+
- JavaScript, Python 等语言的流行和其生态系统的逐步完善。
48+
- Go, Rust 等新星语言的涌现。
49+
- Kotlin, Scala, Clojure, Groovy 等 JVM 平台语言提供了利用 Java 生态系统的其他选项:
50+
- Kotlin 获得了 Google 的青睐和 Android 平台的优先支持。
51+
- Scala 极为灵活的语法和强大的表达能力长期以来收到科学计算领域和分布式数据处理领域的欢迎。
52+
53+
54+
55+
### Some Terms of Java
56+
57+
58+
- JDK, Java Develop Kit, Java 开发工具包
59+
- JRE, Java Runtime Environment, Java 运行时环境
60+
- JVM, Java Virtual Machine, Java 虚拟机
61+
- OpenJDK, 开源 Java 平台实现的合作组织
62+
- LTS,Long Term Support, 长期支持版本
63+
- IDE, Integrated Development Environment, 集成开发环境
64+
65+
66+
67+
68+
## Installation of JDK & IntelliJ IDEA
69+
70+
### Eclipse Adoptium
71+
72+
- **TLDR**: [Eclipse Adoptium ](https://adoptium.net/) 是一个提供一大堆平台和一大堆不同版本的 JDK 的网站。
73+
74+
- **太长不看版**
75+
76+
- OpenJDK 顾名思义,是开源的,因此很多公司和组织都提供了自己的构建版本。
77+
- 2017年启动的 AdoptOpenJDK 项目是第一个提供一大堆平台和一大堆不同版本的JDK的网站,同时也提供了多种平台的构建和测试平台。
78+
- Eclipse Adoptium 是 AdoptOpenJDK 的继任者 。
79+
- 它们提供的 OpenJDK 分发版称为 Eclipse Temurin 。
80+
81+
82+
83+
### Java Version
84+
85+
- **TLDR**:作为最新的*长期支持版本 LTS***Java 17** 将成为本次课程的目标平台。Java 平台保证前向兼容,因此更新版本的 Java 支持本课程讲的绝大多数内容。
86+
- **太长不看版**
87+
- Java 的语法特性和版本绑定,大版本的后续更新大多都是 bug 修复和性能增强。但是 Java7-9 的发布时间分别是 2011-2014-2017,以多年为跨度的更新使 Java 语法特性的进化严重落后于时代。
88+
- 因此,从 *[[JEP 322](https://openjdk.org/jeps/322), Java10]* 开始,采用新的根据固定时间的新版本发布计划和命名方案。Java 将会*每六个月*固定发布新版本,用于快速滚动开发、预览、发布新语法特性和修改。
89+
90+
91+
92+
### Install JDK *(Eclipse Temurin)*
93+
94+
- 所有系统通用:进网站,点下载,双击安装包。
95+
96+
- macOS & Homebrew
97+
98+
```bash
99+
$ brew install --cask temurin // Install latest JDK18
100+
$ brew tap homebrew/cask-versions
101+
$ brew install --cask temurin17
102+
```
103+
104+
- Linux
105+
106+
```bash
107+
$ apt install temurin-17-jdk // Debian/Ubuntu
108+
$ yum install temurin-17-jdk // CentOS/RHEL/Fedora
109+
$ zypper install temurin-17-jdk // openSUSE
110+
```
111+
112+
- 如果 Temurin 网站或者 Linux 源下载速度较慢,可以使用[TUNA镜像](https://mirrors.tuna.tsinghua.edu.cn/help/adoptium/)
113+
- Homebrew如果下载速度慢,需要为其设置代理。
114+
115+
### Other OpenJDK Distribution ?
116+
117+
- [Azul Zulu](https://www.azul.com/downloads/)
118+
- [BellSoft Liberica JDK](https://bell-sw.com/pages/downloads/?)
119+
- 上面两个在业界均有一定应用率,可以信赖。
120+
- 均提供 JDK8 在 ARM Mac 的构建版本。
121+
- 均提供 JavaFX 的支持。
122+
- [GraalVM](https://www.graalvm.org/)
123+
- Oracle 开发的下一代 JDK 和全新的多语言虚拟机。
124+
- 将 Java 编译为本地代码以消除大部分根本上的性能问题。
125+
- 提供高性能的 Python, R, Ruby 等语言的运行时。
126+
127+
128+
129+
### First Command
130+
131+
```bash
132+
$ java --version
133+
openjdk 17.0.3 2022-04-19
134+
OpenJDK Runtime Environment Temurin-17.0.3+7 (build 17.0.3+7)
135+
OpenJDK 64-Bit Server VM Temurin-17.0.3+7 (build 17.0.3+7, mixed mode)
136+
```
137+
138+
---
139+
140+
### *CodeLab 0-1*: helloworld
141+
142+
**第$i$章的 CodeLab 代码位于 `codelab/chapter<i>/src`
143+
144+
[本CodeLab链接](https://github.com/xsun2001/tour-of-java/tree/master/codelab/chapter0)
145+
146+
`Helloworld.java`
147+
148+
```java
149+
public class Helloworld {
150+
public static void main(String[] args) {
151+
System.out.println("helloworld");
152+
}
153+
}
154+
```
155+
156+
```bash
157+
codelab/chapter0/src $ javac Helloworld.java
158+
codelab/chapter0/src $ java Helloworld
159+
helloworld
160+
```
161+
162+
*[JEP222, Java9]* `jshell`: The Java Shell (Read-Eval-Print Loop)
163+
164+
```bash
165+
$ jshell
166+
jshell
167+
| 欢迎使用 JShell -- 版本 17.0.3
168+
| 要大致了解该版本, 请键入: /help intro
169+
170+
jshell> System.out.println("helloworld")
171+
helloworld
172+
173+
```
174+
---
175+
176+
### JetBrains IntelliJ IDEA
177+
178+
- [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)
179+
- 目前最强大、使用最广泛的 Java IDE。
180+
- IntelliJ IDEA Community Edition 是免费开源版本,其包含了基础的 Java 语言支持、分析、构建与版本管理和 Docker 支持。
181+
- IntelliJ IDEA Ultimate 是收费版本,支持性能剖析,企业级框架支持,Web 技术支持,数据库工具,远程协作开发支持。
182+
- 使用`@mails.thu.edu.cn`可以申请 JetBrains 学生包以获取全部开发工具。
183+
184+
## 资源链接
185+
186+
本章CodeLab
187+
188+
https://github.com/xsun2001/tour-of-java/tree/master/codelab/chapter0
189+

0 commit comments

Comments
 (0)