认识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 选型小结

  1. Oracle JDK 8u212 这个版本开始收费的,对于普通用户来说,需要选择 Open JDK 的发行版,而不是去使用商业版的 Oracle JDK;
  2. AdoptOpenJDK 下的 Dragonwell 是一个好的替代品;
  3. Java 8 LTS是Java SE平台的最新长期支持版本,至少到2030年12月;
  4. Java 11 LTS是Java SE平台的最新长期支持版本,至少到2026年9月;
  5. 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环境

  1. 进入 清华大学开源软件镜像站下载JDK

  2. 一般安装在/usr/local/java目录下;

  3. 设置环境变量,修改 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 版本配置。

  4. 让修改生效:

    source /etc/profile
    
  5. 测试,显示 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

posted @ 2022-11-22 14:55  苇草剑  阅读(454)  评论(0)    收藏  举报