这是我理解的jvm内存模型,这一整块可以简单理解为虚拟内存空间: jvm代码、jvm数据:是运行jvm所用到的代码和数据,并不是我们自己编程得到的代码和数据 direct memory:主要是NIO在使用 CodeCache:即时编译器生成的本地代码 JNI代码:native方法代码 socket缓 ...
分类:
其他好文 时间:
2019-06-15 23:12:14
阅读次数:
235
方法调用栈 JVM内存模型有五大块:栈、堆、方法区、本地方法栈、程序计数器(PC寄存器) 我们执行的方法都是存放在栈里面的,栈是先进后出的队列结构,所以当前执行的方法永远存在于栈的顶部,main方法肯定在最底部 每一个方法被执行完后都会被移除,然后返回上一个执行方法,当一个方法执行时会有三种情况: ...
分类:
编程语言 时间:
2019-06-05 23:52:11
阅读次数:
143
1、java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main menory,而每个线程又单独的you自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理(操作码+操作数)。 (1)程序计数器 程序计数器(Program Counter ...
分类:
其他好文 时间:
2019-05-09 20:19:52
阅读次数:
157
内存模型 1,程序计数器(Program Counter Register):程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,可以理解为是当前线程的行号指示器。字节码解释器在工作时,会通过改变这个计数器的值来取下一条语句指令。 每个程序计数器只用来记录一个线程的行号, ...
分类:
其他好文 时间:
2019-04-04 16:01:11
阅读次数:
194
1.JVM运行时内存区域划分? 2.内存溢出OOM和堆栈溢出SOE的案例、原因、排查及解决? 3.常用的JVM性能监控工具? 4.JVM参数设置? 5.类加载过程? 6.JVM内存模型? 7.四大引用类型?区别? 8.JVM性能调优? 9.Minor GC和Full GC 分别在什么时候触发? 10 ...
分类:
其他好文 时间:
2019-04-01 22:40:14
阅读次数:
227
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,C ...
分类:
其他好文 时间:
2019-03-21 17:33:35
阅读次数:
149
在运行Java程序的时候,JVM需要使用内存存放各式各样的数据,JVM规范将这部分内存叫做 运行时数据区 。 ...
分类:
编程语言 时间:
2019-03-16 23:17:56
阅读次数:
156
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间。 先来看一下Java程序具体执行的过程 上图中的运行数据区(Runtime Data Areas)即为JVM内存区域,其结构如下图: 各区域存储的具体信息: 1 ...
分类:
编程语言 时间:
2019-03-12 16:53:36
阅读次数:
228
jvm内存模型 1.执行过程 Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间 ...
分类:
其他好文 时间:
2019-03-08 16:58:44
阅读次数:
206
前几期简单介绍了一些线程方面的基础知识,以及一些线程的一些基础用法以及通过jvm内存模型的方式去介绍了一些并发中常见的问题(想看往期文章的小伙伴可以直接拉到文章最下方飞速前往)。本文重点介绍一个概念“无锁” 本期精彩什么是无锁无锁类的原理AtomicIntegerUnsafeAtomicRefere ...
分类:
其他好文 时间:
2019-03-05 23:21:03
阅读次数:
336