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工作方式(实现过程)

编写java代码 --> 编译,生成.class文件(java字节码) --> jvm转换成机器语言,运行程序

0

 

Java的启动过程

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

 

对象创建的过程

0

垃圾回收

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实现跨平台的核心
0
 
 
 
 

posted on 2025-08-13 23:38  john_yong  阅读(107)  评论(0)    收藏  举报

导航