一文了解JVM面试篇(上)

Java内存区域

1、如何解释 Java 堆空间及 GC?


当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建

堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一

个进程,回收无效对象的内存用于将来的分配。

2、JVM 的主要组成部分及其作用?


组成部分:


image


  • JVM 包含两个子系统和两个组件,两个子系统为:Class loader(类装载)和

    Executionengine(执行引擎);

  • 两个组件为 Runtime data area(运行时数据区)、Native Interface(本地接

    口)。


  1. Class loader(类装载):
    根据给定的全限定名类名(如:java.lang.Object)来装载class 文件到

    Runtime data area 中的 method area。

  2. Execution engine(执行引擎):执行 classes 中的指令。

  3. Native Interface(本地接口):与 native libraries 交互,是其它编程语言交

    互的接口。

  4. Runtime data area(运行时数据区域):这就是我们常说的 JVM 的内存。


作用:


首先通过编译器把 Java 代码转换成字节码,类加载器(ClassLoader)再把字节

码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内,而

字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因

此需要特定的命令解析器执行引擎&

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端工程化工具系列(四)—— Commitlint(v19.3.0):规范化 Git 提交

commitlint 是对 Git 提交的信息进行校验的工具。 1. 环境要求 v19 以上的 Stylelint,支持 Node.js 的版本为 v18 。 在命令行中输入以下内容来查看当前系统中 node 的版本。 node -vNode.js 推荐使用 v18.20.3 或者 v20.13.1。 这里使用的包管理器是 PNPM&#…

NextJs 数据篇 - 数据获取 | 缓存 | Server Actions

NextJs 数据篇 - 数据获取 | 缓存 | Server Actions 前言一. 数据获取 fetch1.1 缓存 caching① 服务端组件使用fetch② 路由处理器 GET 请求使用fetch 1.2 重新验证 revalidating① 基于时间的重新验证② 按需重新验证revalidatePathrevalidateTag 1.3 缓存的退出方式 二. Ser…

PostgreSQL的多态函数

项目中遇到一个需求,需要模拟Oracle的NVL2函数实现一个对应功能的函数 于是就写了一个自定义函数 CREATE OR REPLACE FUNCTION bkdb3.nvl2(expr anyelement, expr2 anyelement, expr3 anyelement)RETURNS anyelementLANGUAGE plpgsql AS $$ BEGINIF expr IS NOT NULL AND expr…

windows操作系统提权之服务提权实战rottenpotato

RottenPotato: 将服务帐户本地提权至SYSTEM load incognito list_tokens –u upload /home/kali/Desktop rottenpotato.exe . execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\SYSTEM" load incognito 这条命令用于加载 Metasploi…

vue 关闭页面前释放资源

mounted() {window.addEventListener(beforeunload, e > this.handleBeforeUnload(e)) }beforeDestroy() {//监听-关闭页面的时候释放资源window.removeEventListener(beforeunload, e > this.handleBeforeUnload(e))},methods: {handleBeforeUnload(event){event.preven…

【Linux】在Windows环境下配置两台Linux机器的文件互传

相信有很多云服务器小伙伴都有想把一台linux资源传到另一台机器,那么该怎样实现? 本篇文章的演示案例都是基于centous进行传输,ubuntu进行接收! 别的方法也都是一样的! 方法一(基于xshell进行的压缩包win…

Java项目:92 基于SSM的办公管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 基于SSM的办公管理系统 1、项目介绍 基于SSM的办公管理系统主要是对于办公用品的申领进行管理,系统分为三种角色,超级管理员、企业 职…

Python3 元组

前言 本文主要介绍Python中的元组(tuple),主要内容包括 元组简介、元组特性、元组的基本操作。 文章目录 前言一、元组简介二、元组特性1、不可变性2、有序性3、异构性4、可以嵌套使用5、元组类型比列表类型更加节省内存空间 三、元组的基本操作1、创建2、索引3、…

利用WMI横向移动

一. WMI介绍和使用 1. WMI介绍 WMI是Windows在Powershell还未发布前,微软用来管理Windows系统的重要数据库工具,WMI本身的组织架构是一个数据库架构,WMI 服务使用 DCOM或 WinRM 协议, 在使用 wmiexec 进行横向移动时,windows 操…

Go_unsafe包

是什么?为什么? 如何利用unsafe包修改私有成员? 结构体会被分配到一块连续的内存,结构体的地址也代表第一个成员的地址。 如何利用unsafe包获取slice和map的长度? // 利用unsafe包修改私有成员 type S struct {name …

vue中使用svg图像

一 、svg图像是什么 SVG(可缩放矢量图形)是一种图像格式,它以XML文档的形式存在,用以描述图像中的形状、线条、文本和颜色等元素。由于其基于矢量的特性,SVG图像在放大或改变尺寸时能够保持图形质量不受影响。这种格式…

Java 异步编编程——Java内置线程池(Executor 线程池)

文章目录 知道线程池是什么以及解决什么问题Java 内置线程池Java 内置线程池设计结构及执行机制ThreadPoolExecutor 中的概念生命周期核心参数阻塞队列4 种任务拒绝策略 线程池使用场景 知道线程池是什么以及解决什么问题 线程池(Thread Pool)是一种基于…

Linux性能优化-网络篇-DNS问题排查

文章目录 前言一、nslookupnslookup 使用交互模式非交互模式 二、dig命令解析域名解析IP指定DNS服务器dig 的trace功能 前言 DNS(Domain Name System) , 域名系统,主要提供域名和IP之间映射关系的查询服务。 本节内容我们带大家了解下如何分析和排查DNS问题。 本次…

如何进行数据库分库分表

当数据库的数据量增长到一定程度,单一数据库或表可能会遇到性能瓶颈,此时分库分表是一种常见的解决方案。以下是如何进行数据库分库分表的详细步骤和考虑因素,结合了参考文章中的相关信息: 一、分库分表概述 分库分表是为了解决…

devicemotion 或者 deviceorientation在window.addEventListener 事件中不生效,没有输出内容

问题&#xff1a;devicemotion 或者 deviceorientation 在window.addEventListener 事件中不生效&#xff0c;没有输出内容 原因&#xff1a; 1、必须在Https协议下才可使用 2、必须用户手动点击click事件中调用 &#xff0c;进行权限申请 源码&#xff1a; <!DOCTYPE h…

JVM 虚拟机

JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机有&#xff1a;JVM、VMwave、Virtual Box等。JVM 是一台被定制过的现实当中不存在的计算…

行政工作如何提高效率?桌面备忘录便签软件哪个好

在行政管理工作中&#xff0c;效率的提高无疑是每个行政人员都追求的目标。而随着科技的发展&#xff0c;各种便捷的工具也应运而生&#xff0c;其中桌面备忘录便签软件便是其中的佼佼者。那么&#xff0c;这类软件又如何帮助我们提高工作效率呢&#xff1f; 首先&#xff0c;…

C语言| 求1到100之间所有奇数的和偶数之和

思路&#xff1a; 1 用到for循环功能&#xff1b; 2 定义两个循环变量i j , 奇数 i 1每次加2&#xff0c;偶数 j 0 每次加2 3 求和放在for 循环中间&#xff0c;每遍历一次就相加。 /* 求1到100之间所有奇数的和 求1到100之间所有偶数之和 */ #include <stdio.h> …

Vue前端中从后端获取图片验证码

前端发送请求 <template><el-form :model"user" :rules"rules" ref"userForm" class"login" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name…

SqlServer还原系统库步骤及问题解决

还原master 需要切换到binn目录 Cd C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn 关闭服务 用单用户模式启动 SQL Server 默认实例 sqlservr.exe -m 直接单用户登录 恢复master备份文件 RESTORE DATABASE master FROM DISK E:\dbbak\txic_ke…