首页 > 其他分享 >JVM学习记录(基本知识点)

JVM学习记录(基本知识点)

时间:2023-11-19 21:31:35浏览次数:27  
标签:知识点 字节 记录 虚拟机 接口 线程 内存 JVM 运行

JVM学习记录(基本知识点)_常量池


一、老生常谈,JVM的组成部分有哪些

1.类加载器(作用:将字节码文件加载到内存中的运行时数据区)

2.运行时数据区(由多个部分组成,也是我们最为普遍较为的区域,大体上讲就是运行程序,包括了程序运行的全生命周期)

3.执行引擎(作用:将字节码翻译成底层系统命令交给CPU去执行)

4.本地库接口(作用:字节码翻译过程需要使用其他语言的接口接口,这个接口就是贝蒂库接口)

二、运行时数据区的组成部分(JDK1.8版本):

1.程序计数器(作用:记录每个线程的正在执行的字节码行号,线程私有)

2.java虚拟机栈(作用:存放局部变量、方法调用,每个线程运行时需要的内存,由栈帧组成,栈帧弹出,内存释放,递归会导致内存溢出,而且方法内的局部变量不一定线程安全)

3.本地方法栈(为虚拟机调用native方法服务的,hotspot已将它与虚拟机栈合并为一个)

4.java堆(作用:线程共享区,用于保存对象实例、数组等,由年轻代和老年代组成(默认比例1:2),年轻代由eden区和幸存者区(to和from)组成,比例8:1:1)

5.方法区(作用:存储类的信息和运行时常量池,线程共享区,虚拟机启动是创建、关闭时释放;运行时常量池可以被看做是一张表,记录着要执行的类名、方法名、参数类型、字面量等,类被加载时他的信息会被放进运行时常量池,虚拟机指令会根据运行时常量池找到信息)

三、额外知识

1.直接内存(不属于jvm的内存结构,是操作系统的系统内存,用于数据缓冲,读写性能高,不过回收成本也高,不受jvm内存回收管理)


这是个学习过程知识积累,知识点比想象的更散,需要结合起来学习




标签:知识点,字节,记录,虚拟机,接口,线程,内存,JVM,运行
From: https://blog.51cto.com/u_15702726/8475754

相关文章

  • 【nest入门】[bug记录]在jupyter notebook中使用conda环境(linux)
    NEST在安装引导https://nest-simulator.readthedocs.io/en/stable/installation/user.html#user-install中提供了conda的方式,如下图所示:如上图中步骤第1步,进行了condacreate--namenest36-cconda-forgenest-simulator后,在jupyter中想要切换到所创建的名为ENVNAME的con......
  • SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段
    SQLINSERTINTO语句用于在表中插入新记录。INSERTINTO语法可以以两种方式编写INSERTINTO语句:指定要插入的列名和值:INSERTINTO表名(列1,列2,列3,...)VALUES(值1,值2,值3,...);如果要为表的所有列添加值,则无需在SQL查询中指定列名。但是,请确保值的顺序与表......
  • SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段
    SQLINSERTINTO语句用于在表中插入新记录。INSERTINTO语法可以以两种方式编写INSERTINTO语句:指定要插入的列名和值:INSERTINTO表名(列1,列2,列3,...)VALUES(值1,值2,值3,...);如果要为表的所有列添加值,则无需在SQL查询中指定列名。但是,请确保值的顺序与表......
  • Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
    Jenkins打包shell出现gradle命令不存在,jvm内存溢出......
  • python踩坑记录之import和module
    1.问题重现最近开发时需要将一个别人的python项目作为submodule引入,调用的时候遇到了奇怪的问题,最后定位到问题是import导致的。首先对问题做一个说明。项目结构如下:Project/main.pysubmodule/__init__.pyhandler.pytools.py导致问题的......
  • 小甲鱼Delphi教程37课《读写修改记录型文件》源码
    说明:本程序用delphi10.4重写编写一、最后效果二、源码1unitUnit1;23interface45uses6Winapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,7Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,V......
  • 记录第一篇IEEE论文写作问题
    标题在标题中,所有名词、代词、形容词、动词、副词和从属连词均大写。除单位缩写和首字母缩略词外,其他小写的缩写均大写。冠词(a、an、the)、并列连词(and、but、for、or、nor)和大多数短介词都是小写的,除非它们是第一个或最后一个词。三个以上字母的介词(Before、From、Through、With、......
  • CentOS7下的绑核操作记录(未完待续)
    一、具体操作查看物理CPU个数cat/proc/cpuinfo|grep"physicalid"|sort|uniq|wc-l查看每个物理CPU中core的个数(即核数)cat/proc/cpuinfo|grep"cpucores"|uniq查看逻辑CPU的个数cat/proc/cpuinfo|grep"processor"|wc-l查看cpucores数量:grep"......
  • 记录--手写一个 v-tooltip 指令
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言日常开发中,我们经常遇到过tooltip这种需求。文字溢出、产品文案、描述说明等等,每次都需要写一大串代码,那么有没有一种简单的方式呢,这回我们用指令来试试。功能特性支持tooltip样式自定义支持tooltip内容......
  • 2023-11-17 记录formly+antd+dayjs的shortcuts设置筛选项全部、昨天、今天
    业务中需要用到formly+antd的组件DatePicker日期组件,其中要给该组件添加筛选项(如:全部、昨天、今天),日期的格式化用到了日期插件dayjs(注意不是momentjs)shortcuts=[{text:'全部',onClick:()=>([null,null])},...shortcutsData]如果只是设置昨天或者今天,只需传开始和结束......