上一页 1 2 3 4 5 6 7 8 ··· 21 下一页
  2021年11月29日
摘要: 执行引擎 执行引擎概述 执行引擎属于JVM的下层,里面包括 解释器、及时编译器、垃圾回收器 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎 阅读全文
posted @ 2021-11-29 19:53 幂次方 阅读(58) 评论(0) 推荐(0)
  2021年11月24日
摘要: 直接内存 Direct Memory 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即 阅读全文
posted @ 2021-11-24 20:00 幂次方 阅读(25) 评论(0) 推荐(0)
摘要: 对象实例化内存布局与访问定位 对象实例化 面试题 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? Java对象头有什么? 从对象创建的方式 和 步骤开始说 对象创建方式 new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法 Class的new 阅读全文
posted @ 2021-11-24 19:52 幂次方 阅读(18) 评论(0) 推荐(0)
  2021年11月21日
摘要: 方法区 前言 这次所讲述的是运行时数据区的最后一个部分 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理 栈、堆、方法区的交互关系 下面就涉及了对象的访问定位 Person:存放在元空间,也可以说方法区 person:存 阅读全文
posted @ 2021-11-21 17:29 幂次方 阅读(44) 评论(0) 推荐(0)
  2021年11月18日
摘要: 堆 堆的核心概念 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存 阅读全文
posted @ 2021-11-18 19:56 幂次方 阅读(46) 评论(0) 推荐(0)
摘要: 本地方法栈 Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的) 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个 StackOverflo 阅读全文
posted @ 2021-11-18 19:52 幂次方 阅读(28) 评论(0) 推荐(0)
摘要: 本地方法接口 什么是本地方法 简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如 C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用exte 阅读全文
posted @ 2021-11-18 19:45 幂次方 阅读(19) 评论(0) 推荐(0)
  2021年11月14日
摘要: 虚拟机栈 虚拟机栈概述 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 有不少Java开发人员一提到Java内存结构,就会非常粗粒度地将JVM中的内存区 阅读全文
posted @ 2021-11-14 17:46 幂次方 阅读(27) 评论(0) 推荐(0)
摘要: 程序计数器 介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也 阅读全文
posted @ 2021-11-14 17:44 幂次方 阅读(32) 评论(0) 推荐(0)
摘要: 运行时数据区概述及线程 前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 也就是大厨做饭,我们把大厨后 阅读全文
posted @ 2021-11-14 17:23 幂次方 阅读(12) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 21 下一页