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

剖析一下自己的简历第二条

剖析一下自己的简历第二条

  • 背景
  • 前置说明
  • 可能会被问到的问题

背景

剖析一下自己简历, 增加对一些专业知识的掌握. 我的简历第二条是这样写的: “2. 熟悉JVM、JMM,包括内存模型,垃圾回收机制,了解其基本调优技巧并具备线上调优经验。”.

前置说明

大概是为了面试, 有些知识点是按照自己当前的认知和理解整理归纳的. 可能不太对, 但是愿意慢慢去优化和完善自己的知识体系.

可能会被问到的问题

  1. JVM 的基本结构是什么?
    • 回答:JVM 主要由以下几个部分组成:
      • 类加载器子系统:负责加载、链接和初始化类。
      • 运行时数据区:包括方法区、堆、虚拟机栈、本地方法栈和程序计数器。
      • 执行引擎:解释器、即时编译器(JIT 编译器)、垃圾回收器等。
      • 本地接口:与底层操作系统交互的部分。
      • 本地方法库:提供给 JVM 调用的本地方法。
        在这里插入图片描述
  2. 什么是 Java 内存模型(JMM)?
    • 回答:Java 内存模型定义了多线程程序中变量的访问规则,确保了不同线程之间内存操作的一致性。JMM 通过以下机制实现:
      • 原子性:保证某些操作是不可分割的。
      • 可见性:一个线程对共享变量的修改能够被其他线程看到。
      • 有序性:禁止指令重排序,确保程序按照预期的顺序执行。
        在这里插入图片描述
  3. ** 垃圾回收器常用的算法有哪些? **
  • 标记-清除(Mark-Sweep):标记出所有需要回收的对象,然后清除这些对象。
  • 复制(Copying):将存活对象从一个区域复制到另一个区域,然后清空原区域。
  • 标记-整理(Mark-Compact):标记出所有需要回收的对象,然后将存活对象移动到一端,清空另一端。
  • 分代收集(Generational Collection):将堆分成新生代和老年代,分别使用不同的收集算法。
    在这里插入图片描述
  1. **哪些对象可以是GCRoot对象? **
    也就是找到那些一定不是垃圾的对象
  • 虚拟机栈中的局部变量: 栈针中局部变量表中引用的对象是当前方法正在使用的对象, 一定不是垃圾对象.
  • 方法区中的类静态属性: 这个是类的属性, 只要类不被卸载, 我们就认为这个对象一定不是垃圾对象.
  • 方法区中的常量: 这个是在方法区的常量池中, 也是一直存活的对象, 所以也被认为是GCRoot对象.

    还有很多我这里记不住了, 可以自行百度, 回答几个就可以了, 面试而已…
    为了加深印象, 这个还是自己画一个图吧:
    在这里插入图片描述
  1. **常见的垃圾回收器都有哪些? **
  • 小内存应用:Serial 收集器
  • 多核 CPU 和高吞吐量:Parallel 收集器
  • 低延迟:CMS(Concurrent Mark Sweep) 或 G1 收集器
  • 极低延迟和大内存:ZGC 或 Shenandoah 收集器
  • 测试和基准测试:Epsilon 收集器
    这里记一下读音吧:
  • Serial 的发音是:['sɪr.i.əl]
  • Parallel 的发音是:['pær.ə.lel]
    这里找一个图留一个印象吧:
    // TODO 后续可以研究学习一下:
    在这里插入图片描述
  1. **JVM常用的命令和工具有哪些? **
  • jstack:主要用于生成线程转储,帮助诊断线程相关的问题,如死锁、长时间运行的任务等。
  • jmap:主要用于生成堆转储文件和显示堆中对象的统计信息,帮助分析内存使用情况。
  • jconsole:提供图形界面,用于实时监控 JVM 的各种指标,如内存使用情况、线程状态、类加载信息等。
    Arthas
    Eclipse MAT (Memory Analyzer Tool)
    // TODO 后续有时间可以尝试使用一下

相关文章:

剖析一下自己的简历第二条

剖析一下自己的简历第二条 背景前置说明可能会被问到的问题 背景 剖析一下自己简历, 增加对一些专业知识的掌握. 我的简历第二条是这样写的: “2. 熟悉JVM、JMM,包括内存模型,垃圾回收机制,了解其基本调优技巧并具备线上调优经验。”. 前置…...

威联通-001 手机相册备份

文章目录 前言1.Qfile Pro2.Qsync Pro总结 前言 威联通有两种数据备份手段:1.Qfile Pro和2.Qsync Pro,实践使用中存在一些区别,针对不同备份环境选择是不同。 1.Qfile Pro 用来备份制定目录内容的。 2.Qsync Pro 主要用来查看和操作文…...

性能测试基础知识jmeter使用

博客主页:花果山~程序猿-CSDN博客 文章分栏:测试_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 性能指标 1. 并发数 (Con…...

Ceph文件存储

Ceph文件存储1.概念:数据以文件的形式存储在存储介质上,每个文件都有一个唯一的文件名并存储在一个目录结构中。提供方便的文件访问接口,支持多种文件操作,如创建、删除、读取、写入、复制等。用于存储和管理个人文件,如文档、图片…...

Hive分区表新增字段并指定位置

Hive分区表新增字段并指定位置 1、Hive分区表新增字段2、CASCADE关键字3、历史分区新增列为NULL问题 1、Hive分区表新增字段 Hive分区表新增字段并指定位置主要分为两步:新增字段和移动字段 1)新增字段 ALTER TABLE table_name ADD COLUMNS (col_name …...

关系型数据库(RDBMS)与非关系型数据库(NoSQL)应用场景

关系型数据库适用于事务性、强一致性和结构化数据场景;非关系型数据库则在高并发、大数据、非结构化数据场景中表现更优;数据量和并发量增加时,应通过分库分表、缓存、集群扩展等手段进行优化。 1. 在什么样的业务场景下,你会优先…...

浅谈CI持续集成

1.什么是持续集成 持续集成(Continuous Integration)(CI)是一种软件开发实践,团队成员频繁地将他们的工作成果集成到一起(通常每人每天至少提交一次,这样每天就会有多次集成),并且在每次提交后…...

华为新手机和支付宝碰一下 带来更便捷支付体验

支付正在变的更简单。 11月26日,华为新品发布会引起众多关注。发布会上,华为常务董事余承东专门提到,华为Mate 70和Mate X6折叠屏手机的“独门支付秘技”——“碰一下”,并且表示经过华为和支付宝的共同优化,使用“碰…...

shell编程基础笔记

目录 echo改字体颜色和字体背景颜色 bash基本功能: 运行方式:推荐使用第二种方法 变量类型 字符串处理: 条件判断:(使用echo $?来判断条件结果,0为true,1为false) 条件语句&a…...

VS Code配置Lua调试环境

我这里选用Emmylua进行Lua代码调试,调试环境配置如下: 一、安装Emmylua 在VS Code扩展里搜索emmylua,然后进行安装, 如下 二、配置launch.json 在Run and Debug里生成launch.json文件 点击以上菜单后,生成launch.json文件如下: 三、配置.e…...

FPGA(一)Quartus II 13.1及modelsim与modelsim-altera安装教程及可能遇到的相关问题

零.前言 在学习FPGA课程时,感觉学校机房电脑用起来不是很方便,想着在自己电脑上下载一个Quartus II 来进行 基于 vhdl 语言的FPGA开发。原以为是一件很简单的事情,没想到搜了全网文章发现几乎没有一个完整且详细的流程教学安装(也…...

【单片机】ESP32-S3+多TMC2209控制步进电机系列1 UART通信及无传感回零 硬件部分

目录 1. 硬件选型1.1 esp32硬件型号1.2 TMC2209 硬件型号 2 原理接线图2.1 esp32接线2.2 TMC2209接线2.2.1 单向通讯 不配置地址2.2.2 单向通讯 配置地址2.2.3 双向通讯 单UART 【本文采用】2.2.4 双向通讯 多UART 3. 成品效果 1. 硬件选型 1.1 esp32硬件型号 采用的是微雪ES…...

Django之ORM

1.ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对…...

html css 图片背景透明

html css图标背景透明 css属性&#xff1a; background-color:transparent; mix-blend-mode: multiply; 完整HTML代码&#xff1a; <html><head><title>Test</title></head><body><div id"test" style"background-col…...

使用ALB实现gRPC协议的负载均衡

gRPC是一种高性能、开源的远程过程调用框架&#xff0c;当您使用gRPC进行后端服务通信时&#xff0c;您可使用应用型负载均衡ALB&#xff08;Application Load Balancer&#xff09;实现gRPC协议的负载均衡&#xff0c;统一流量入口。gRPC基于HTTP/2协议进行通信&#xff0c;目…...

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…...

【Linux测试题】

1. 选择题 题目&#xff1a; 如果想将电脑中Windows C盘&#xff08;hd1&#xff09;安装在Linux文件系统的/winsys目录下&#xff0c;请问正确的命令是&#xff08;&#xff09;。 选项&#xff1a; A. root104.123.123.123:~# mount dev/hd1 /winsys B. root104.123.123.12…...

python使用openpyxl处理excel

文章目录 一、写在前面1、安装openpyxl2、认识excel窗口 二、基本使用1、打开excel2、获取sheet表格3、获取sheet表格 尺寸4、获取单元格数据5、获取区域单元格数据6、sheet.iter_rows()方法7、修改单元格的值8、向表格中插入行数据9、实战&#xff1a;合并多个excel 三、获取E…...

【JavaWeb后端学习笔记】Mybatis基础操作以及动态SQL(增、删、改、查)

Mybatis 0、环境准备0.1 准备数据库表emp&#xff1b;0.2 准备SpringBoot工程0.3 配置文件中引入数据库连接信息0.4 创建对应的实体类0.5 准备Mapper接口 1、MyBatis基础操作1.1 删除1.2 新增&#xff08;主键返回&#xff09;1.3 更新1.4 查询&#xff08;解决字段名与类属性名…...

基于MATLAB野外观测站生态气象数据处理分析实践应用

1.本课程基于MATLAB语言 2.以实践案例为主&#xff0c;提供所有代码 3.原理与操作结合 4.布置作业&#xff0c;答疑与拓展 示意图&#xff1a; 以野外观测站高频时序生态气象数据为例&#xff0c;基于MATLAB开展上机操作&#xff1a; 1.不同生态气象要素文件的数据读写与批处理…...

Llama-3.2V-11B-cot算法解析实战:图解卷积神经网络核心原理

Llama-3.2V-11B-cot算法解析实战&#xff1a;图解卷积神经网络核心原理 你是不是经常听到“卷积神经网络”这个词&#xff0c;感觉它既神秘又强大&#xff0c;但一看到那些复杂的数学公式和网络结构图就头疼&#xff1f;别担心&#xff0c;今天咱们就换个方式&#xff0c;用大…...

Wan2.2-I2V-A14B私有部署实战教程:RTX 4090D一键生成1080P视频

Wan2.2-I2V-A14B私有部署实战教程&#xff1a;RTX 4090D一键生成1080P视频 1. 开篇&#xff1a;为什么选择私有部署 当你需要频繁生成高质量视频内容时&#xff0c;公有云服务往往面临三个痛点&#xff1a;生成排队时间长、隐私数据风险、调用成本高。Wan2.2-I2V-A14B私有部署…...

如何快速上手LeaguePrank:英雄联盟段位修改工具完整实战指南

如何快速上手LeaguePrank&#xff1a;英雄联盟段位修改工具完整实战指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为英雄联盟单调的段位显示感到无聊吗&#xff1f;LeaguePrank是一款开源工具&#xff0c;让你轻松修…...

Swift-All镜像推荐:免配置快速部署,新手也能轻松上手

Swift-All镜像推荐&#xff1a;免配置快速部署&#xff0c;新手也能轻松上手 想体验大模型的强大能力&#xff0c;却被复杂的安装、环境配置和依赖问题搞得头大&#xff1f;今天&#xff0c;我为你介绍一个能彻底解决这些烦恼的“神器”——Swift-All镜像。它就像一个为你量身…...

VBA UserForm控件交互实战:跨窗体数据传递与动态更新

1. UserForm基础与跨窗体数据传递原理 刚接触VBA UserForm时&#xff0c;我经常被各种控件的交互问题困扰。特别是当需要多个窗体协同工作时&#xff0c;数据传递就成了大难题。记得有次做订单管理系统&#xff0c;主窗体收集客户信息&#xff0c;子窗体处理产品明细&#xff0…...

Claude Code与李慕婉-仙逆-造相Z-Turbo协同工作流:AI编程辅助图像生成任务

Claude Code与李慕婉-仙逆-造相Z-Turbo协同工作流&#xff1a;AI编程辅助图像生成任务 你有没有过这样的经历&#xff1f;脑子里突然冒出一个绝妙的画面&#xff0c;想把它画出来&#xff0c;却发现自己既不会画画&#xff0c;也不懂那些复杂的图像生成工具。或者&#xff0c;…...

数据库运维与数据安全:备份恢复、日志分析与故障排查

下面的内容大家根据实际情况&#xff0c;公司的业务还有重点择机选择&#xff0c;不是所有的蓝翔都有挖掘机 如果说之前的索引优化是“飙车”&#xff0c;那么今天的主题就是“系安全带”和“买保险”。 在运维的世界里&#xff0c;没有“如果”&#xff0c;只有“万一”。当…...

如何轻松获取网页媒体资源?猫抓开源工具让资源提取效率提升3倍

如何轻松获取网页媒体资源&#xff1f;猫抓开源工具让资源提取效率提升3倍 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾在浏览网页时遇…...

【Java低代码组件调试黄金法则】:20年架构师亲授5大高频故障定位技巧,90%开发者从未听说

第一章&#xff1a;Java低代码组件调试的本质与认知跃迁Java低代码平台并非屏蔽复杂性&#xff0c;而是将复杂性重新封装、可视化与可追溯化。调试低代码组件的本质&#xff0c;是穿透表层拖拽逻辑&#xff0c;定位其背后生成的Java字节码、Spring Bean生命周期行为、以及运行时…...

雷小兔:让学术论文排版变得简单高效

产品概述 雷小兔是一款专门为学生和研究人员设计的学术论文辅助工具。无论你是在准备毕业论文、学位论文还是学术发表&#xff0c;雷小兔都能为你提供全面的支持和帮助。 论文排版方面的核心优势 1. 模板齐全&#xff0c;开箱即用 雷小兔内置了数十种符合国内外高校标准的论…...