![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 71
jack lei
半路出家
展开
-
JVM知识--方法区
栈、堆、方法区交互关系 什么是方法区 尽管所有的方法区在逻辑上属于堆的一部分,但是一些简单的实现可能不会进行垃圾回收和压缩 各个线程共享区域 方法区在JVM启动时创建,并且它的实际的物理内存空间和java堆区一样都可以是不连续的 方法区的大小和堆空间一样,可以选择固定大小或者可扩性 方法区的大小决定了系统可以保存多少类,如果系统定义太多类导致方法区溢出 会抛出OOM 方法区大小的设置与OOM 1.7 -XX:PermSize 永久代初始分配空间 -XX:MaxPermSize 永久代最大可分配空间 1原创 2020-05-31 21:57:14 · 129 阅读 · 0 评论 -
JVM系列--堆
核心概念 1.一个JVM实例只存在一个堆内存,堆是java内存管理的核心区域 2.JAVA堆区在JVM启动的时候被创建,其空间大小也就被确定了,堆内存的大小是可以调节的 -Xms 最小堆大小 -Xmx最大堆大小 3.堆可以处于物理上不连续的内存空间,但在逻辑上它应该被视为连续的. 4.所有的线程共享java堆,在这里还可以划分出线程私有的缓存区(Thread Loca Allocation Buffer TLAB) 5.几乎所有的对象和实例都应该分配在对上 6.在方法结束后,堆中的对象不会马上被回收,而是原创 2020-05-31 17:57:14 · 217 阅读 · 0 评论 -
JVM系列知识--本地方法栈
本地方法栈 一个Native method 就是一个java调用非java代码的接口, 该方法的实现由非java语言实现,比如当时的大哥C原创 2020-05-30 17:57:38 · 69 阅读 · 0 评论 -
JVM系列知识--虚拟机栈
什么是虚拟机栈 java虚拟机栈也叫java栈,每个线程在创建时都会创建一个虚拟机栈,其内部保存的是一个个栈帧,对应着一次次的java方法调用 线程私有的 栈中可能出现的异常 JAVA虚拟机规范允许JAVA栈的大小是动态的或是固定不变的 如果采用固定大小的java虚拟机栈,那每一个线程的java虚拟机栈容量可以在线程创建的时候独立选定,如果线程请求分配的栈容量超过java虚拟机栈允许的最大容量,java虚拟机会抛出一个StackOverflowError异常 如果java虚拟机栈可以动态扩展,并且在尝试扩展原创 2020-05-30 17:36:12 · 124 阅读 · 0 评论 -
JVM系列知识(1)---各种虚拟机介绍
背景 现在大厂对JVM这块知识要求越来越高和为了让自己对JAVA语言有更深层次的理解,因此在此记录自己所学JVM知识,方便复习,以防遗忘。 知识来源 :《深入理解JAVA虚拟机》、官网 、网络博客、腾讯课堂上、尚硅谷视频、实际生产遇到过的问题 简介 各个语言排行榜. JVM是一个跨语言的平台,只要各自的编程语言提供各自的编译器,编译后的字节码文件遵循JVM规范即可。也就是说java虚拟机平台上也可以运行非java语言编写的程序 基础知识 1.虚拟机 虚拟机(Virtual Machine ) 就是一台虚拟的原创 2020-05-16 23:14:50 · 169 阅读 · 0 评论