当前位置: 首页 > news >正文

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

目录

          • 1. 说明
          • 2. 启动(Initialization)
          • 3. 运行(Running)
          • 4. 服务(Servicing)
          • 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会释放它所占用的所有资源,并结束其生命周期。

相关文章:

  • 如何在一个 JavaScript 文件中引入另一个 JavaScript 文件
  • android11禁止进入屏保和自动休眠
  • 关于微信小程序低功耗蓝牙ECharts实时刷新(涉及自定义缓冲区)
  • 景源畅信电商:抖音开店步骤是什么?
  • 服装服饰商城小程序的作用是什么
  • 向npm发布自己写的vue组件,使用vite创建项目
  • 一个生动的例子——通过ERC20接口访问Tether合约
  • 继电器的选型和英应用
  • 【Linux系统】--- Linux内核日志等级详解
  • 【Python001】python批量下载、插入与读取Oracle中图片数据(已更新)
  • mysql中的内连接与外连接
  • 新火种AI|寻求合作伙伴,展开豪赌,推出神秘AI项目...苹果能否突破AI困境?
  • 【busybox记录】【shell指令】mkdir
  • K8s service 进阶
  • windows 执行node报错 800A1391
  • 2019年如何成为全栈工程师?
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Django 博客开发教程 8 - 博客文章详情页
  • echarts的各种常用效果展示
  • ES6核心特性
  • JavaScript设计模式系列一:工厂模式
  • Java小白进阶笔记(3)-初级面向对象
  • Leetcode 27 Remove Element
  • React中的“虫洞”——Context
  • select2 取值 遍历 设置默认值
  • XML已死 ?
  • 和 || 运算
  • 前端自动化解决方案
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • #14vue3生成表单并跳转到外部地址的方式
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1)Nginx简介和安装教程
  • (1)svelte 教程:hello world
  • (33)STM32——485实验笔记
  • (WSI分类)WSI分类文献小综述 2024
  • (笔试题)合法字符串
  • (差分)胡桃爱原石
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net mvc总结
  • .NET NPOI导出Excel详解
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net6 webapi log4net完整配置使用流程
  • .NET6实现破解Modbus poll点表配置文件
  • .net访问oracle数据库性能问题
  • @Autowired @Resource @Qualifier的区别
  • @RequestParam详解
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [AIGC 大数据基础]hive浅谈