1. java的一些基础知识
Java是什么
java是基于JVM的面向对象的高级语言,一次编写,到处运行。
Java版本
jre版本
最初是按照1.x来命名的,到1.8的时候直接命名为java8。在Java9后每6个月发布一个新版本,所以好似突然间java的版本猛增。其中有些版本是长期支持更新的,有些版本是过度版本。在开发生产应用时,一般选择长期支持的版本。当前常用的版本主要有java8, java11, java17, java21
- Java8(LTS, 2014) 主要特性:Lambda表达式、Stream API、新的日期和时间API。
- Java11(LTS, 2018)主要特性:HTTP/2 Client、局部变量类型推断(var)、ZGC垃圾回收器。
- Java17(LTS, 2021)主要特性:密封类(Sealed Classes)、模式匹配、Vector API。
- Java21(LTS, 2023)主要特性:虚拟线程(Virtual Threads)、分代ZGC、字符串模板。
Java ME,Java SE和Java EE
java按功能划分的版本(每个java大的版本下又按照功能划分相应的版本):
- Java ME(微型版,体积小,常用于嵌入式等微型项目开发),
- JavaSE(标准版,常用于一般的桌面开发,web开发),
- JavaEE(java企业版,用于企业级,或者是大型项目开发)。下载地址:https://www.oracle.com/java/technologies/downloads/archive/#JavaEE
java工作方式(实现过程)
编写java代码 --> 编译,生成.class文件(java字节码) --> jvm转换成机器语言,运行程序

Java的启动过程
启动jvm --> jvm 类加载器加载class文件 --> 调用main函数运行程序(main方法是程序的入口, public static void main(String[] args){})
对象创建的过程

垃圾回收
jvm会将不可达的对象回收销毁
原理
- 可达性性分析: 从GC Roots出发,遍历对象引用链,不能被访问到的对象视为垃圾对象。 JVM会在适当的时机自动进行垃圾回收,无需程序员手动释放内存
GC Roots:
(1). 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。
(2). 方法区中的类静态属性引用的对象。
(3). 方法区中常量引用的对象。
(4). 本地方法栈中JNI(Native方法)引用的对象。
- 分代收集: 根据对象存活时间将内存分为不同区域(新生代,老年代),采用不同的回收策略。
JDK & JRE & JVM
- JDK: Java Development Kit,java开发套件(工具包),支持java程序的编写,编译和运行。它主要包含JRE(java运行环境),java基础类库和Java的一些工具包。
- JRE: Java Runtime Environment, 即Java运行环境,支持编译好的java程序的运行。它包含JVM和一些Java核心类库。
- JVM: Java Virtual Machine, 即Java虚拟机,它能够将编译的java字节码翻译成所在计算机能够执行的程序指令。它是java实现跨平台的核心

浙公网安备 33010602011771号