认识Java《Java核心技术 SE8》
Java的特性
- 简单性:比C++简单;
- 面向对象:将重点放在数据(对象)和对象的接口上;
- 分布式:能够像访问本地文件一样,通过URL打开和访问网络上的对象;
- 健壮性:Java编译器能够检测出许多其它语言在运行时才能检测出来的问题;
- 安全性:运行时堆栈溢出、破坏自己的进程空间之外的内存、未经授权读写软件...
- 体系结构中立:编译器生产一个体系结构中立的字节码文件;
- 可移植性:除用户界面以外的库都能很好的支持平台独立性;
- 解释型:Java解释器可以在任何移植了解释器的机器上执行Java字节码;
- 高性能:优秀的即时编译器会监控经常执行的代码并进行优化;
- 多线程:支持并发程序设计;
- 动态性:将某些代码添加到正在运行的程序中。
JDK
在 OpenJDK 基础上加上 Oracle 特性就是可以在 Oracle 官网上下载下来的 Oracle JDK,第三方厂商也会基于 OpenJDK 去构建自己的构造,比如自己的发行版,例如亚马逊的 Corretto,Azul 的 Zulu,阿里巴巴的Dragonwell。
目前,整个业界标准是 AdoptOpenJDK(其中成员有 Amazon Corretto、IBM OpenJ9、SAP Machine、Alibaba Dragonwell) 去主导 Open JDK 的发行,因为 Oracle 不做这个发行,自然需要一个第三方组织去发行 Open JDK。
AdoptOpenJDK 影响是非常大的,比如在 Spring 的官网上下载 JDK 的话,它会首先推荐去下载一个 AdoptOpenJDK。
AdoptOpenJDK 加入了 Eclipse 基金会,并立即改名为 Adoptium。

JDK 选型小结
- Oracle JDK 8u212 这个版本开始收费的,对于普通用户来说,需要选择 Open JDK 的发行版,而不是去使用商业版的 Oracle JDK;
- AdoptOpenJDK 下的 Dragonwell 是一个好的替代品;
- Java 8 LTS是Java SE平台的最新长期支持版本,至少到2030年12月;
- Java 11 LTS是Java SE平台的最新长期支持版本,至少到2026年9月;
- Java 17 LTS是Java SE平台的最新长期支持版本,至少到2024年9月。
JDK的安装与配置
window系统
新建JAVA_HOME环境变量:切换版本方便快捷
PATH
# 写入系统可执行文件的完整路径
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
CLASSPATH
# 告诉解释器在那里寻找Java解释过程中所需的包,JDK8之前的需要配置
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar\
PATH和CLASSPTH区别
PATH:是操作系统提供的路径配置,定义所有可执行程序的路径,Java安装bin目录;
CLASSPATH:是由JRE提供的,用于定义Java程序解释时类加载路径,默认从当前目录加载,也可配置CLASSPATH路径:
关系:JVM →CLASSPATH的定义的路径→加载字节码文件。
linux环境
-
进入 清华大学开源软件镜像站下载JDK;
-
一般安装在/usr/local/java目录下;
-
设置环境变量,修改 vi /etc/profile,在 profile 文件中添加如下内容并保存:
set java environment JAVA_HOME=/usr/local/java/jdk1.8.0_151 JRE_HOME=/usr/local/java/jdk1.8.0_151/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH注意:其中 JAVA_HOME, JRE_HOME 请根据自己的实际安装路径及 JDK 版本配置。
-
让修改生效:
source /etc/profile -
测试,显示 java 版本信息,则说明 JDK 安装成功
java -version
常见命令
# 查看版本信息
java -version
# 编译java文件为class文件
javac Hello.java
# 解释Hello.class文件为机器码,并执行
java Hello
# 打jar包
jar -cvf Hello.jar Hello.class
# 解压jar包到当前目录
jar -xvf Hello.jar
# 反编译class文件到命令行
javap Hello.class
# 执行jar包
java -jar hello.jar
# 生产javadoc文档
javadoc -d d:\javadoc\ Hello.java
JShell工具
Java9以上自带的shell工具,具有自动补全功能,可省略结构代码,快速进行简单的程序验证,使用jshell打开,使用/exit退出
# 执行指定文件内的代码
/open d:/var/mul.txt


浙公网安备 33010602011771号