【面试】Java虚拟机的生命周期

目录

          • [1. 说明](#1. 说明)
          • [2. 启动(Initialization)](#2. 启动(Initialization))
          • [3. 运行(Running)](#3. 运行(Running))
          • [4. 服务(Servicing)](#4. 服务(Servicing))
          • [5. 终止(Termination)](#5. 终止(Termination))
1. 说明
  • 1.Java虚拟机(JVM)的生命周期通常指的是JVM实例从启动 到终止的整个过程。
  • 2.JVM的启动和终止也可以通过命令行参数或脚本进行定制和控制。可以使用-X系列的JVM参数来配置JVM的内存大小、垃圾回收策略等。
  • 3.在JVM终止时,也可以通过设置System.exit()的参数来返回一个状态码,以指示程序是正常退出还是由于某种错误而退出。
2. 启动(Initialization)
  • 1.JVM通过加载并初始化一些基本的类 (如java.lang.Object)和执行JVM启动时的初始化代码来启动。
  • 2.JVM启动参数在这个阶段被解析和处理。
  • 3.如果使用JNI(Java Native Interface),还会加载和初始化本地方法库。
3. 运行(Running)
  • 1.JVM加载并执行Java的.class文件或者由JIT(Just-In-Time Compiler)编译器编译后的本地代码。
  • 2.JVM管理内存,包括堆内存 (Heap)、方法区 (Method Area,也称为永久代或元空间)、栈(Stack)等。
  • 3.JVM执行垃圾回收(Garbage Collection)来自动管理内存,释放不再使用的对象占用的空间。
  • 4.如果应用程序使用了线程,JVM负责线程的调度 和执行。
4. 服务(Servicing)
  • 1.这个阶段主要是JVM为Java应用程序提供服务,包括执行Java代码 、内存管理 、垃圾回收 、线程调度等。
  • 2.如果应用程序请求了外部资源(如文件、数据库连接等),JVM会协调这些资源的访问。
5. 终止(Termination)
  • 1.JVM实例的终止可以由多种原因触发。
  • 2.程序正常执行完毕调用了System.exit()方法。
  • 3.程序遇到未捕获的异常或错误,并且没有恢复机制。
  • 4.宿主操作系统终止JVM进程(如用户手动终止或系统崩溃)。
  • 5.在终止前,JVM会执行一些清理工作,如关闭打开的文件、数据库连接等。
  • 6.JVM会释放它所占用的所有资源,并结束其生命周期。
相关推荐
const_qiu5 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
Promising_GEO5 小时前
GEE实战02期:从卫星波段开始:利用 Sentinel-2 自己计算 NDVI
java·sentinel·遥感·空间分析
大文说跨境5 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
1m555555555 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
CoderYanger5 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
顽疲6 小时前
java springboot vue 养老系统源码详解:请假 care_leave 销假与床位停费日扣实践
java·vue.js·spring boot
XIAEE6 小时前
一个即时通讯项目是怎么长出来的:(Spring Boot 3 + Vue 3 微前端 + 悟空 IM + LiveKit)
java·spring
n87656 小时前
Playwright Java WEB UI 自动化实现框架与逻辑
java·前端·ui
Java_AI工程师6 小时前
Spring4 / SpringBoot1.x 老项目想接入 AI?不用升级框架!3 套无痛落地方案
java·人工智能·spring boot