JVM面试篇

面试篇就是复习前面学的

什么是JVM

1.定义:JVM指的是Java虚拟机,本质是一个运行在计算机上的程序

2.作用:为了支持Java中Write Once ,Run Anywhere 编写一次 到处运行的跨平台特性 

 

功能:

1.解释和运行

2.内存管理

3.即时编译

组成

常见的jvm

总结

字节码的组成 

运行时数据区

方法区、堆、本地方发栈、虚拟机栈、程序计数器(后三不共享 前二共享)

直接内存主要是NIO使用,由操作系统直接管理,不属于JVM内存

程序计数器

栈-----java虚拟机栈

栈帧的组成:

1.局部变量表

2.操作数栈

3.帧数据

本地方法栈

创建出来的对象都存在于堆上

栈上的局部变量表中,可以存放堆上对象的引用。静态变量也可以存放堆对象的引用,通过静态变量就可以实现对象在线程之间的共享

堆是垃圾回收的最主要部分,堆结构更详细的划分于垃圾回收器有关

方法区

直接内存

总结

哪些区域会出现内存溢出,会有什么现象?

内存溢出指的是内存某一块区域的使用量超过了允许使用的最大值,从而使用内存时因空间不足而失败,虚拟机一般会抛出指定的错误。

在java虚拟机中,只有程序计数器不会出现内存溢出情况,因为每个线程的程序计数器只保存一个固定长度的地址

堆内存溢出:

栈内存溢出:

方法区的内存溢出

直接内存溢出

总结

JVM在jdk6-8之间在内存区域上有什么不同?

1.方法区的实现

2.字符串常量池的位置

用元空间替换永久代的原因:

字符串常量池

总结

类的生命周期

加载阶段

1.加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制的方式获得字节码信息

程序员可以使用java代码拓展不同的渠道

2.类加载器在加载完类之后,java虚拟机会将字节码中的信息保存到内存的方法区中。在方法区生成一个InstanceKlass对象,保存类的所有信息

3.在堆中生成一份与方法区中数据类似的java.lang.Class对象,作用是在java代码中获得类的信息

连接阶段

初始化阶段

卸载阶段

总结

什么是类加载器

类加载器负责在类加载过程中将字节码信息以流的方式获得并加载到内存中。在JDK8及之前如下:

启动类加载器 JDK9之前是c++编写,之后是java编写

扩展类加载器

应用程序类加载器和自定义类加载器

总结

什么是双亲委派机制

双亲委派机制是指当一个类加载器接收到加载类的任务时,会向上查找是否加载过,再由顶向下进行加载

双亲委派机制有什么作用?

1.保证类加载的安全性

2.避免重复加载

总结

如何打破双亲委派机制

重写loadclass

Tomcat的自定义类加载器

总结

如何判断堆上的对象有没有被引用

引用计数法 可达性分析法

引用计数法会为每个对象维护一个引用计数器,当对象被引用时+1,取消引用时-1

缺点:

什么是GCRoot对象

总结

JVm有什么引用类型

Threadlocal为什么要用弱引用

总结

有什么常见的垃圾回收算法

标记清除

复制算法

标记整理算法

分代GC

概念太多了 自己回去看之前的笔记吧。。。。

有哪些常用的垃圾回收器

看之前的概念

如何解决内存泄漏

主要思路

常见的JVM参数

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

XSKY 智能存储,助力“数据要素 X”先进制造

3 月 21-22 日,主题为“突破 智行”的 IMC2024 第七届中国智造数字科技峰会在重庆召开。作为在先进制造领域拥有领先存储解决方案以及众多应用实践的企业,星辰天合受邀参加了此次峰会并荣获大会颁发的“最佳存储解决方案奖”。同时,星辰天合先…

Django日志(三)

内置TimedRotatingFileHandler 按时间自动切分的log文件,文件后缀 %Y-%m-%d_%H-%M-%S , 初始化参数: 注意 发送邮件的邮箱,开启SMTP服务 filename when=h 时间间隔类型,不区分大小写 S:秒 M:分钟 H:小时 D:天 W0-W6:星期几(0 = 星期一) midnight:如果atTime未指定,…

Swift知识点(二)

17. 字面量协议、模式匹配、条件编译 字面量(Literal) var age 10 var isRed false var name "Jack"上面代码中:10、false、"Jack"就是字面量 可以看到,初始化过程很简单,直接赋值即可 Swif…

Java微服务分布式事务框架seata的TCC模式

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

蓝桥杯 EDA 组 2023模拟+真题原理图解析

本文解析了标题内的原理图蓝桥杯EDA组真题,2021-2022 省赛真题/模拟题在上一篇文中。本文中重复或者是简单的电路节约篇幅不在赘述。 其中需要补充和计算原理图的题目解析都放在最下面 一、2023 年第十四届省赛模拟题1 1.1 Type-C 接口电路 通过 CH340N 将数据转化为…

List系列集合:ArrayList、LinkedList --java学习笔记

List系列集合 特点:有序、可重复、有索引 ArrayList:有序、可重复、有索引LinkedList:有序、可重复、有索引 List集合的特有方法 List集合因为支持索引,所以多了很多与索引相关的方法,当然,Collection的…

Visual Studio 插件 AnAPI++ for VS 2022

Anmial API abbreviation AnAPIis an automatically generated WebAPI project that has encapsulated Jwt Oauth2 token authentication, SqlSugar, Swagger, Nlog, Cross domain technologies, and supports Net6 and above versions Anmial API缩写AnAPI是一个自动生成的Web…

pytest简介以及命令行执行

pytest简介以及安装 pytest简介导入第三方库修改工具类 pytest命令方式执行函数执行pytest中的参数详解 pytest简介 pytest有很多强大的插件 pytest-html (生成html格式的自动化测试报告) pytest-xdist (测试用例分布式执行,多cpu…

如何在 Odoo 17 中创建进度条

Odoo 提供各种字段小部件,例如单选按钮、浮点数、百分比、颜色选择器、复选框、状态栏和 URL。通过使用不同的渲染模板,我们可以使用小部件修改视图。它还帮助我们根据自己的需求进行设计,从而简化、加速、扩展和提高开发效率。在本博客中&am…

三分钟教会你水果音乐编曲软件 FL Studio v21.2.3 中文免费版安装方法

随着数字音乐制作的发展,音乐编曲软件已经成为音乐制作人和爱好者不可或缺的工具。FL Studio v21.2.3是一款功能强大的水果音乐编曲软件,它具有直观的界面,易于学习和使用。本文将介绍FL Studio v21.2.3的特点和优势,以及它在音乐…

cloudflare 应用例子几则

Cloudflare(以下简称 CF) 堪称互联网活菩萨,造就一大批高质量的互联网基础技术服务,更难得的是,几乎所有的服务都有对应的免费的套餐,而且出手大方,基本上有足够的容量或请求次数。 CDN CF 最…

Amazon Aurora Limitless Database :数据库管理的全新境界

在当今数亿用户、PB 级数据和数百万交易的业务环境中,数据库管理面临着巨大的挑战。传统数据库扩展的繁琐性和耗时性使得许多组织需要花费数月甚至数年的时间来构建自定义软件以满足其极端的工在当今数亿用户、PB 级数据和数百万交易的业务环境中,数据库…

美易官方:美股维持涨势,三大股指再创新高

在今日的早盘交易中,美股市场继续维持其涨势,三大股指再次刷新历史纪录。市场信心受到一系列积极经济数据的支撑,投资者对未来的经济增长和企业盈利保持乐观态度。 首先,让我们来看一下道琼斯工业平均指数的表现。该指数在早盘交易…

思科无线控制器配置学习

文章目录 简单拓扑WLC配置 简单拓扑 WLC配置 WLC#show running-config Building configuration...Current configuration : 11943 bytes ! ! Last configuration change at 16:22:44 UTC Thu Mar 14 2024 by admin ! version 17.9 service timestamps debug datetime msec se…

微信小程序开发之创建一个自己的项目和项目目录下各个文件的了解

1、小程序开发工具基础 (1)菜单栏:可以对开发工具进行一些简单的设置,还可以在帮助一行获取学习相关api文档 (2)模拟器显示栏:每当我们在进行便写好代码之后,通过编译可以在模拟显示…

运维-[frp配置内网服务器访问外网]

背景 同一局域网里面,两台服务器A服务器可以访问外网,代理端口为10809,B服务器不可访问外网 实现工具 通过frp进行内网穿透配置代理服务 配置 A服务器配置 A服务器配置frp客户端 配置文件-frpc.ini server_addr:B服务器IP server_port:B服务…

ATG-3080功率信号源的应用领域有哪些

功率信号源是一种用于提供稳定功率输出的电子设备,它在许多应用领域中发挥着重要作用。下面西安安泰将详细介绍功率信号源的几个常见应用领域。 电子测试和测量:功率信号源广泛应用于各种电子测试和测量场景。它可以提供稳定的功率输出,用于测…

六面体单元热应力问题有限元求解 | Matlab源码 | 理论文本 | 温度应力 | 热应变 |温度应变 |热力耦合

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

非标图纸管理系统,非标图纸管理系统哪家好

非标图纸管理系统 是指专门用于管理非标准化设计图纸的系统。非标设计图纸是指不符合标准规范的设计图纸,可能是由于特殊需求、个性化定制或者其他原因引起的。这些非标设计图纸可能包括产品设计图、建筑设计图、工艺设计图等。非标图纸管理系统哪家好择彩虹图纸管理…

Juniper SRX 防火墙基础上网配置

简介 基于PNET-LAB模拟器,使用 vSRX-NG 23.4R1.9 镜像进行实验。 博客:https://songxwn.com/Juniper-SRX-snat/ 实验需求 配置WAN口 LAN口,实现基础的上网功能。配置NAT、DHCP。 ISP 路由器使用Cisco IOS模拟,与SRX对接口配置…