简介 Java虚拟机在执行Java程序的过程中会把它所管理的划分为若干个不同的数据区域,这些区域有各自的用途,以及创建和销毁时间。 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 程序计数器 程序计数器 ? 是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。 字节码解 ...
分类:
其他好文 时间:
2020-06-09 00:02:21
阅读次数:
84
昨天在各个群里转悠的时候,有人问出这么一个问题? 问:这个方法为什么一直是2的倍数? 然后,他就自己给出了答案,一番操作猛如虎: 我这种菜鸟只看得一脸膜拜,满头问号,所以赶紧回去补基础…… 1.h右移一位减去h右移八位,二进制的最后一位肯定是0 让我们过一遍代码: 这个identityHashCod ...
分类:
编程语言 时间:
2020-06-07 19:41:36
阅读次数:
73
一、JVM体系结构: 类装载器ClassLoader:用来装载.class文件 执行引擎:执行字节码,或者执行本地方法 运行时数据区:方法区、堆、Java栈、程序计数器、本地方法栈 JVM把描述类数据的字节码.Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用 ...
分类:
其他好文 时间:
2020-06-01 11:48:58
阅读次数:
50
运行时数据区 线程独有 本地方法栈、虚拟机栈、程序计数器 这些与线程对应的数据区会随着线程开始和结束创建和销毁 JVM涉及的线程 线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行 在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射。 当一个Java线程准备好执行以后 ...
分类:
其他好文 时间:
2020-05-25 22:33:49
阅读次数:
70
1、什么是JUC JUC大家可能听说过,它实际上 Java 提供的用于并发处理的工具包。如官方文档所示: 回顾以前 在以前的业务中,我们使用的代码: 1、Thread 2、Runnable:没有返回值、无法抛出异常、效率相比 Callable 较低! 3、Callable 4、还有Locked锁 这 ...
分类:
编程语言 时间:
2020-05-23 18:20:08
阅读次数:
51
1.JVM内存模型 ?程序计数器:当前线程字所执行节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有。 ?Java虚拟机栈:存放基本数据类型,对象的引用,方法出口等,线程私有。 ?本地方法栈:和虚拟栈类似,不过它服务于本地方法,线程私有。 ?Java堆:Java内存中最大的一块,所有对 ...
分类:
编程语言 时间:
2020-05-21 21:18:05
阅读次数:
64
一.相关概念 GC需要完成三件事:1,哪些内存需要回收?2:什么时候回收?3:如何回收? Java内存运行时区域的各部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着入栈和出栈操作。 每一个栈帧中分配多少内存基本上是在类结构确定 ...
分类:
编程语言 时间:
2020-05-21 19:17:01
阅读次数:
59
jvm细化图: VM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以外,在概念中还有一个直接内存的概念,事实上这部分内存并不属于虚拟机规范中定义的内存区域,但是因为在JDK1.4+后新加的NIO类,以及JDK ...
分类:
编程语言 时间:
2020-05-21 19:01:10
阅读次数:
51
title: 深入理解Java虚拟机 date: 2020 05 14 10:58:24 tags: JVM,虚拟机 [TOC] 1.运行时数据区域 1.程序计数器 当前线程执行字节码的行号指示器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空) 2.虚拟机栈 虚拟机栈描述的 ...
分类:
编程语言 时间:
2020-05-19 22:46:31
阅读次数:
72
一、JVM内存区域JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA堆、方法区】、直接内存。二、线程私有区域线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁。程序计数器:是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。正在执行java方法的话,计数器记录的是虚拟字节码指令的地址(当前指令的地址)。如果还是native方
分类:
其他好文 时间:
2020-05-18 09:19:10
阅读次数:
68