![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
lolichan
这个作者很懒,什么都没留下…
展开
-
jvm内存
Runtime Data Area 运行时数据区就是我们常说的jvm内存 1.程序计数器类似汇编语言中的cs:ip,指向下条指令地址。多线程中每个线程都有自己的程序计数器 2.java栈java栈也称作虚拟机栈,事实上java栈是java方法执行的内存模型。java栈中存放许多栈帧,每个栈帧对应一个被调用的方法。当线程执行一个方法就会创建一个对应的栈帧,并将之...原创 2016-09-22 15:13:05 · 71 阅读 · 0 评论 -
java内存中heap和stack的区别
java中堆栈对比 栈的优点是存取速度快,至少比堆快。但由于栈自身数据结构的特点,导致存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。(这里就可见方法栈为什么用stack这种数据结构了,首先每个方法对应的形参和非静态变量数量和大小是固定的,第二在调用方法时生成栈,压栈该方法结束时出栈,生命周期是确定的。) 堆的优势是可以动态分配内存大小,也不用管他的生命周期,jvm的垃圾收...原创 2016-09-22 16:49:30 · 150 阅读 · 0 评论 -
class文件结构
Java诞生之始就提出一个口号叫“Write once,Run anywhere”,即代码编写一次、编译一次之后就可在所有平台上通用。实现平台无关性的基石是各种平台不同的虚拟机和所有平台统一使用的程序存储格式——字节码。这里的虚拟机相当于手机充电的转换头。这些字节码是存储在class文件中的,了解class文件结构是了解jvm的基础。 class文件是不包含任何的分隔符的,因此想要虚拟...原创 2016-10-09 09:42:04 · 71 阅读 · 0 评论 -
网上线程上下文加载器解释之我观
《深入理解java虚拟机》一书中谈到破坏类加载器的双亲委派机制时,谈到使用线程上下文类加载器可以破坏该机制,使程序逆向使用类加载器。那什么时候需要破坏双亲委派机制呢?其中一种情况是java提供的服务提供者接口(Service Provider Interface,SPI)。这些SPI的借口由java核心库提供,加载它们的只能是BootstrapClassLoader。这些接口的实现多由第三方...原创 2016-10-18 15:00:11 · 78 阅读 · 0 评论 -
类加载器
本文转自http://www.cnblogs.com/MrYuan/p/4498070.html深入探讨 Java 类加载器 类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何...原创 2016-10-18 15:01:50 · 73 阅读 · 0 评论 -
jdk1.8下模拟永久代内存溢出
转自:https://blog.csdn.net/qq_26093341/article/details/80791899 相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space1、通过List不断添加String.intern();2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到效果),...原创 2018-08-21 23:37:17 · 712 阅读 · 1 评论 -
从一个类看类加载
转自:https://www.cnblogs.com/javaee6/p/3714716.html 1 开门见山以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下: 123456789101112131415161718...原创 2018-09-08 19:40:14 · 142 阅读 · 0 评论 -
jvm规范第二章--jvm结构
第二章 jvm结构这篇文档定义一个抽象的机器,而不说明java虚拟机的任何具体实现。要正确的实现java虚拟机,就必须能够正确的读取class文件格式并执行文件内部指定的操作。为了不限制jvm实现者的创造力,jvm规范不定义任何实现细节。比如像,运行时数据区的内存布局、垃圾回收算法的使用以及虚拟机指令的内部优化等都留给实现者去判断完成。 2.1 class文件格式被jv...原创 2018-10-15 14:47:09 · 317 阅读 · 0 评论