JVM
文章平均质量分 90
JVM
取个名字真的烦
这个作者很懒,什么都没留下…
展开
-
深入理解JVM(四)JVM类加载机制
JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程 4.1 加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对 象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将 JSP 文件转换成对应的 Class 类)。 4.2 验证 这一转载 2021-08-05 17:19:00 · 127 阅读 · 0 评论 -
深入理解JVM(一)Java内存区域与内存溢出异常
1.1.运行的数据区域 方法区 虚拟机栈 本地方法栈 堆 程序计数器 方法区,堆线程共享 其余的是线程隔离 1.2.详解 1.2.1.程序计数器 程序计数器的作用就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一个独立的程序计数器,各个线程之间的计数器互不影响,...原创 2019-08-29 17:56:08 · 97 阅读 · 0 评论 -
深入理解JVM(二)垃圾收集器与内存分配策略
3.2对象已死吗 3.2.1 引用计数算法 给对象添加一个引用计数器,每当有一个地方引用它,计数器的值就加1,当引用失效则减一;任何时刻计数器为0的对象就是不可能再使用的。 引用计数算法很难解决对象之间相互循环的问题。虚拟机并不是通过引用计数算法来判断对象是否存活的。 3.2.2 可达性分析算法 基本思路:通过一系列称为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为...原创 2019-09-20 22:23:41 · 124 阅读 · 0 评论 -
深入理解JVM(三)JAVA IO/NIO
3.1 IO 3.1.1 阻塞 IO 模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除 block 状态。典型的阻塞 IO 模型的例子为:data = socket.read();如果数据没有就绪,就会一直阻塞在 read 方法。 3.1.2 非阻塞 IO 模型 当用户线程发转载 2021-08-05 16:52:54 · 271 阅读 · 0 评论