Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:java:java

Java

这么流行的语言,我居然是在2025年才第一次接触(虽然还是不打算深入学习)

以前国内的各种培训班都是各种「几个月速成Java」的广告,让我对这门语言没什么好感,虽然从来没有用过


一些基础概念

Java代码是需要编译的。

编译过程[AI]:当你写完一个 .java 源代码文件后,需要用 javac 编译器进行编译。编译的结果不是直接生成机器码(像 C/C++ 那样生成 .exe 或者 .o),而是生成 字节码文件(.class)。字节码是一种“中间语言”,它不是针对某个操作系统或硬件平台的,而是一种抽象的、通用的指令集。

执行过程[AI]:字节码本身不能直接在操作系统或 CPU 上运行,需要通过 Java 虚拟机(JVM)来解释或编译执行。运行机制大概如下:

  1. JVM 读取字节码 → 确保安全性和跨平台一致性。
  2. 解释执行或 JIT 编译 → JVM 可以逐条解释字节码,也可以通过 JIT(Just-In-Time)即时编译,把热点代码翻译成机器码,提高执行效率。
  3. 调用底层系统 → JVM 作为中间层,把通用的字节码转化为不同平台上的实际指令(Windows/Linux/Mac 等)。

JDK里面包含JVM(虚拟机)和开发工具。
JDK是开放标准,除了 Oracle 会发布一个版本以外,也会有其他的实现版本。
建议使用 SDKMAN 来管理不同的实现、不同的版本。

# 确认JDK安装成功和版本信息
java -version

Java的执行流程:Java Code → JAR → java -jar app.jar
JAR(实际上=ZIP?)是一种二进制文件(Java/Kotlin 字节码,二进制、资源文件等)。
JAR 里是 JVM 字节码,虽然是二进制,但还不是最终的机器码。
安卓也使用Java,但是没有JVM,可以直接运行Java的字节码?

历史(暂未考证)

  1. 1991 年,Sun Microsystems 的工程师 James Gosling 等人开始开发 Java。
  2. 2009 年,Oracle 收购了 Sun Microsystems(约 74 亿美元)。
  3. Java 商标和核心规范归 Oracle 所有。
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/java/java.txt · Last modified: 2025/10/11 11:51 by zhonghui