E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Jvm学习
JVM学习
总结
文章目录1JVM架构图2相关知识点3参考数据4参考链接1JVM架构图2相关知识点3参考数据《深入理解Java虚拟机_JVM高级特性与最佳实践第2版》4参考链接《一图读懂JVM架构解析》:http://www.sohu.com/a/218242823_468650
CleverCode
·
2019-09-09 17:41
性能优化
java之
jvm学习
笔记六(实践写自己的安全管理器)
原文链接:https://blog.csdn.net/yfqnihao/article/details/8263358安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个PerssiomColl
沙琪玛丫
·
2019-09-04 20:37
JVM
JVM学习
笔记——类加载过程
JVM学习
笔记——类加载过程类加载模型——双亲委派模型(ParentsDelegationModel)也可称为“溯源委派加载模型”Java的类加载器是一个运行时核心基础设施模块,主要是启动之初进行类的Load
DeepSleeping丶
·
2019-09-03 13:00
JVM学习
笔记——类加载过程
原文链接:http://www.cnblogs.com/deepSleeping/p/11443141.html
JVM学习
笔记——类加载过程类加载模型——双亲委派模型(ParentsDelegationModel
daxia7577
·
2019-09-03 13:00
JVM学习
笔记——字节码指令
JVM学习
笔记——字节码指令字节码0与1是计算机仅能识别的信号,经过0和1的不同组合产生了数字之上的操作。另外,通过不同的组合亦产生了各种字符。同样,可以通过不同的组合产生不同的机器指令。
DeepSleeping丶
·
2019-09-01 18:00
JVM 学习笔记
JVM学习
笔记(基于JDK11)类加载过程加载(Loading):Loading阶段读取类文件产生二进制流,并转化为特定的数据结构,初步校验cafebabe魔法数、常量池、文件长度、是否有父类等,然后创建对应类的
SIMBA1949
·
2019-08-21 07:28
JVM
Jvm学习
之内存结构
我想知道更多内存模型:并发编程相关内存结构:JVM相关运行时的数据区域Java虚拟机在运行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域,有的区域随着虚拟机进程的启动而存在,有的区域随着用户线程的启动和结束而建立和销毁程序计数器字节码解释器需要改变该计数器的值去选取下一条执行的字节码指令,如分支、循环、异常处理和线程恢复等基础功能线程私有,各线程之间互不影响。每个线程都需要独立
Stalern
·
2019-08-15 12:48
Java成神之路
JVM学习
之垃圾收集器
如果说垃圾回收算法是理论,那么垃圾收集器就是实现。今天来聊聊Hotspot几种垃圾收集器。橙色代表新生代,绿色代表老年代,收集器直接有连线的说明可以配置使用。1.Serial收集器Serial收集器是最基本也是最长久的垃圾收集器。它是一个单线程收集器,它在进行垃圾对象收集时必须停掉用户线程。这样对用户体验来说就很糟糕了,所以JDK一直在努力减少因内存回收而导致停顿用户线程。到JDK1.7已经有了很
WilliamDream
·
2019-08-10 23:32
JVM
JVM学习
笔记(三) GC机制、内存分配与回收策略
结合oracle关于GC系列官方文档(HotSpotVirtualMachineGarbageCollectionTuningGuide,Java12)以及周志明老师的《深入理解Java虚拟机》(通过这本书收益挺大的,厚着脸皮称呼为老师吧!),这半个月来趁着业余时间断断续续的再次把GC机制回顾了一遍。在阅读了Oracle官方关于java12GC机制的系列文章后,相对几年前周老师关于java7的著述
.破晓.
·
2019-08-10 12:48
GC
JVM
JVM
JVM学习
笔记整理
JVM垃圾回收的时候如何确定垃圾?知道什么是GCRoots?什么是垃圾简单来说就是内存中已经不在被使用到的空间就是垃圾要进行垃圾回收,如何判断一个对象是否可以被回收?引用计数法枚举根节点做可达性分析为了解决引用计数法的循环引用问题,Java使用了可达性算法。通过一系列为GCRoots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GCRoots没有任何引用链相连时
kavito
·
2019-08-04 11:17
JVM
JVM学习
之垃圾回收算法
1.何时回收对象JVM何时回收对象,换句话说,如何判断对象为垃圾对象?有以下两种方式:引用计数法在对象中添加一个计数器,当一个对象在其他地方被引用,则计数器加1,失效时计数器减1。但这种并不能解决相互引用问题。-verbose:gc-XX:+PrintGCDetails可达性分析GCRoot通过引用可以指向对象则对象存活,否则对象无效,视为垃圾。可以作为GCRoot的对象•虚拟机栈(局部变量表中)
WilliamDream
·
2019-07-31 14:43
JVM
JVM学习
(一):java的内存结构
JVM学习
(一):java的内存结构1.JVMjava的内存结构运行时数据区由上图我们可以看出,java内存结构一般由五部分组成堆:Java堆屎JVM所管理的内存当中,最大的一块,它是被所有线程共享的一块内存区域
黑白se幻想
·
2019-07-28 15:05
jvm
JVM学习
笔记(一)
JVM学习
回顾--概述与思考
前后断断续续花费一个月的时间,算是把《深入理解Java虚拟机–JVM高级特性与最佳实践.周志明》过了一遍,之所以说是过了一遍,是因为在阅读过程中基于目前知识体系看不懂或与个人主线相关性不大的部分给过滤了。简谈JVM说到JVM首先来说一下java这门语言,相对于C、C++,java更加的高级、智能化、自动化;对于开来说封装了许多底层的操作,如内存回收、即时编译、指针封装等。Java的许多特性都依赖于
.破晓.
·
2019-07-22 23:17
JVM
JVM
JVM(2)九个部分 p4
参考
jvm学习
《收藏系列》1九大部分1.1类加载子系统负责从文件系统或者网络中加载Cla
熬夜吃橘子
·
2019-07-11 20:44
JVM学习
JVM学习
笔记 -- 垃圾收集器
原文链接:http://www.cnblogs.com/liuwy/p/11160566.html垃圾收集(GarbageCollection,GC)需要考虑3件事:1、哪些内存需要回收2、什么时候回收3、如何回收Java内存运行时区域中,程序计数器、虚拟机栈、本地方法栈3个区域生命周期与线程相同,这几个区域的内存分配和回收都具备确定性,不需要考虑回收的问题,在方法结束或线程结束后内存自然跟着回收
digu6000
·
2019-07-10 20:00
JVM学习
——4.1 类加载-类加载顺序
类的加载的生命周期类被加载到虚拟机内存中到卸载出内存中主要经历几个步骤:加载、验证、准备、解析、初始化、使用、卸载类加载的步骤的顺序图目前可以确定的顺序是:加载、验证、准备、初始化、卸载。解析的时候为了支持Java语言的运行时绑定,所以在某些情况下可能存在先初始化再进行解析。类加载的时机的大概节点遇到new、getstatic、putstatic或invokestatic这4条字节码指令时。如果此
大·风
·
2019-07-08 01:29
JAVA
#
JVM
JVM学习
——3.3 垃圾清理-内存分配
JVM内存管理通常我们说JVM说的自动内存管理主要包含:自动化解决给对象分配内存以及自动化的回收分配给对象的内存。之前学习过垃圾回收算法以及运行原理,现在来学习对象内存分配。对象的内存分配,主要介绍的是在堆上进行内存分配。对象的最开始主要分配在新生代的Eden区上。如果启动本地线程分配缓冲,线程优先分配在TLAB上。少数直接分配在老年代中对象优先在Eden分配大多数情况下,对象在新生代的Eden区
大·风
·
2019-07-07 17:16
JAVA
#
JVM
JVM学习
——3.1 垃圾清理-垃圾回收算法
垃圾回收算法当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节之前一篇我们知道JVM管理的内存被分为程序计数器、虚拟机栈、本地方法栈和Java堆还有方法区(JDK1.8之前)。而程序计数器、虚拟机栈、本地方法栈随着方法或者线程的结束,所使用的内存被系统回收,但是Java堆却不是这样,这部分内存的分配和回收都是动态的
大·风
·
2019-07-04 00:28
JAVA
#
JVM
Java学习笔记之JVM篇
判断对象是否存活的算法问:如何回收对象垃圾收集算法(4种)标记-清除(Mark-Sweep)算法复制算法(为解决标记-清除算法的效率问题)标记-整理算法(解决复制算法不可用于老年代问题)分代收集算法(主流算法)前言这是
JVM
骚年渴望力量吗
·
2019-07-03 22:30
Java基础
jvm学习
一,类加载
首先java文件打包成.class文件Hello.java->打包->Hello.class->类加载->jvm中加载过程,加载->验证->准备->解析->初始化加载:就是讲.class通过类加载加载到jvm中验证:验证文件是否可用,是否合法准备:给类或者类变量等等分配内存空间解析:这个不太懂初始化:执行一些静态代码。初始化类的时候,如果父类没有被初始化,那么一定先初始化他的父类类加载器类加载器有
bpqdwo
·
2019-07-03 16:18
jvm学习
JVM学习
——1 JAVA的发展
从这篇开始,后面几篇文章开始学习JVM相关内容。JVM的技术所需要关注的JVM技术从虚拟机到类加载,到硬件支持有许多很重要的知识点,因为内容太过复杂,所以本次学习只能针对其中一些内容进行学习。主要是针对平时面试中被关注最多的几个地方JVM的数据区域垃圾回收垃圾回收的算法垃圾回收收集器垃圾回收内存分配策略类运行类加载顺序类执行顺序并发支持JAVA内存模型线程优化Java概述本篇主要学JAVA的一些平
大·风
·
2019-07-02 00:30
JAVA
#
JVM
JVM学习
笔记 -- 类加载机制
原文链接:http://www.cnblogs.com/liuwy/p/11093923.html虚拟机把Class文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是JVM的类加载机制,其中的Class文件除了存于磁盘中的文件,以其他形式存在也可以,具体指一串二进制的字节流。1、生命周期类从被加载到虚拟机内存到卸载出内存,整个生
digu6000
·
2019-06-28 23:00
JVM学习
笔记2 --纯手写读取class文件常量池内容并输出
JVM的class文件定义有严格的规范,当虚拟机读取class文件的二进制数据时,JVM虽然不会管该二进制数据是从java编译期编译而来还是其他例如groovy或者kotlin等等编译而来,只要符号jvm定义的规范,就能够读取,也就能在JVM虚拟机上运行直接上代码,可能有些粗糙,不喜勿喷哈各位大神:两个类,没细化处理,一个主类,一个配置类,本人IDEA+JDK1.8运行1、主类HexConvert
qq_22597325
·
2019-06-16 12:24
JVM学习
大数据技术之_30_
JVM学习
_01_JVM 位置+JVM 体系结构概览+堆体系结构概述+堆参数调优入门+JVM 的配置和优化+Tomcat 的配置和优化...
原文链接:http://www.cnblogs.com/chenmingjun/p/11029371.html1、JVM位置2、JVM体系结构概览3、堆体系结构概述4、堆参数调优入门5、JVM的配置和优化6、Tomcat的配置和优化熟悉JVM架构与GC垃圾回收机制以及相应的JVM调优,有过在Linux系统下的调优经验。淘宝的周志明《深入理解Java虚拟机》中说JVM的优化,其中99%优化的是堆,1
aodawu2891
·
2019-06-15 23:00
JVM学习
笔记-class文件的构造
1、class文件构造:1.魔数(u4)2.次版本号(u2)3.主版本号(u2)4.constant_pool_count(常量个数u2)5.常量池表(constat_pool_count-1cp_info)6.access_flags(类的访问修饰符u2)7.this_class(类名u2)8.super_class(类名u2)9.interfaces_count(接口个数u2)10.inter
qq_22597325
·
2019-06-15 17:06
JVM学习
JVM学习
实用的参数
实用的JVM参数1.JIT编译参数说明:JVM的JIT(Just-In-Time)编译器,可以在运行时将字节码编译成本地代码,从而提高函数的执行效率。使用:-XX:CompileThreshold当函数的调用次数超过时,JIT就将字节码编译成本地机器码。在client模式下,取值是1500;在server模式下,取值是10000。-XX:+CITime打印出JIT编译的耗时。-XX:+PrintC
你尽不知
·
2019-06-14 16:29
JVM
JVM学习
垃圾收集器
1.作用 用来替代手工内存管理,减轻程序员的负担,减少出错的概率。垃圾收集器要处理的基本问题是:那些对象需要回收?何时回收这些对象?如何回收这些对象?2.垃圾回收算法与思想1.引用计数法(ReferenceCounting) 对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减一。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。 引用计数
你尽不知
·
2019-06-14 16:38
JVM
JVM学习
笔记2
1、类命名空间每一个类都有自己的命名空间,类命名空间由加载该类的类加载器以及其父加载器所加载的类组成的在同一个命名空间内,不允许出现类完整名字相同的两个类在不同的类命名空间中,可能会出现类的完整名字相同的类一个类有可能被加载多次,在不同的命名空间中一个类如果由父加载器加载的,那它是看不到子加载器加载的类,反过来不成立2、运行时包同一个类加载器加载,属于同一个包,多个类型的集合java默认允许同一个
qq_22597325
·
2019-06-11 20:13
JVM类加载
JVM学习
JVM学习
(4):Java内存异常
关于Java虚拟机这块内容的学习我是看CSDN的一位博客专家大佬@黄小斜的文章学习的,它写的内容更为全面详细,有兴趣可以去看它的文章:深入理解JVM虚拟机11:Java内存异常原理与实践。这里仅对此文进行笔记整理。内存泄露和内存溢出•内存泄露:代码中的某个对象本应该被虚拟机回收,但因为拥有GCRoot引用而没有被回收。•内存溢出:虚拟机由于堆中拥有太多不可回收对象没有回收,导致无法继续创建新对象。
龙飞云跃
·
2019-06-09 20:28
JVM学习
(2):JVM垃圾回收基本原理和算法
关于Java虚拟机这块内容的学习我是看CSDN的一位博客专家大佬@黄小斜的文章学习的,它写的内容更为全面详细,有兴趣可以去看它的文章:深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法。这里仅对此文进行笔记整理。在运行时,Java的实例被存放在堆内存区域。当一个对象不再被引用时,满足条件就会从堆内存移除。在垃圾回收进程中,这些对象将会从堆内存移除并且内存空间被回收。堆内存有以下三个主要区域:新生
龙飞云跃
·
2019-06-09 17:11
JVM学习
(1):JVM的内存结构
关于Java虚拟机这块内容的学习我是看CSDN的一位博客专家大佬@黄小斜的文章学习的,它写的内容更为全面详细,有兴趣可以去看它的文章:深入理解JVM虚拟机1:JVM内存的结构与永久代的消失这里仅对此文进行笔记整理。在了解Java虚拟机之前,首先要了解JDK、JRE、JVM分别是指什么:JDK(JavaDevelopmentKit)是Java语言的软件开发工具包(SDK)。一系列工具帮助开发者创建J
龙飞云跃
·
2019-06-09 16:31
JVM学习
笔记:类加载、连接及初始化
原文链接:http://www.cnblogs.com/zhongHW/p/11047007.html类加载:在JAVA代码中,类型的加载,连接,初始化都是在程序运行期间完成的。类型:指的是定义class,或interface或者枚举,并不涉及对象或实例。为什么要在运行期间完成类型的加载,连接,初始化:为了提供更灵活的使用方式,例如动态代理。类型的加载:最常见的情况的是把编译好的字节码文件从硬盘上
dlb61953
·
2019-06-06 14:00
JVM学习
笔记1
类加载器ClassLoaderClassLoader本身是一个类,是由启动类加载器来加载的(启动类加载器属于JVM内置的,不属于java实现,根据不同的虚拟机实现而实现,可能是C语言等)加载类的过程通过给定一个binaryname:“java.lang.String”的字符串;““com.jvm.TestinnerClass”代表Test类的内部类innerClass,中间用innerClass”
qq_22597325
·
2019-06-05 22:05
JVM类加载
JVM学习
笔记7-常用指令,助记符,JVM参数
JVM参数-XX:+-表示开启option选项-XX:+TraceClassLoading—输出Class加载日志-XX:+TraceClassUnloading–输出Class卸载日志-XX:-表示关闭option选项-XX:+HeadDumpOnOutOfMemoryError—输出内存溢出日志助记符getstatic—静态变量取值putstatic—静态变量赋值invokestatic—调用
lu322313
·
2019-06-02 21:13
JVM学习
笔记8-Java字节码文件结构剖析
java字节码结构Class字节码中有两种数据类型字节数据直接量—基本的数据类型u1—代表连续的1个字节组成的整体数据u2—代表连续的2个字节组成的整体数据u4—代表连续的4个字节组成的整体数据u8—代表连续的8个字节组成的整体数据表(数组)是由多个基本数据或其他表,按照既定顺序组成的大的数据集合表是有结构的—体现在:组成表的成分所在的位置和顺序都是已经严格定义好的使用javap-verbose命
lu322313
·
2019-06-02 00:26
JVM学习
一 java内存区域和内存外溢
一java内存区域必不可少的一张图举个例子Integeri=newInteger(1);注释:名词-局部变量空间(solt)double是占两个1.虚拟机栈:存放基本类型+对象引用2.堆:存放对象实例3.方法区:存放已被虚拟机加载的类信息,常量,静态变量,即时编辑器编译后的代码等数据,别名Non-Heap二对象分配方式1.指针碰撞:java堆中的内存很规整,直接找一块大小一样的内存就可以2.空闲列
Jon_jing
·
2019-05-30 15:15
JVM
JVM学习
笔记四【垃圾收集器】
之前介绍了利用可达性分析法来分析对象到GCRoots是否存在引用链,那么HotSpot是如何实现的呢?HotSpot算法实现枚举根节点HotSpot是如何获取根节点的呢?我们之前提到Java虚拟机栈中引用的对象,JNI方法中引用的对象,方法区中的类的静态属性引用的对象,方法区中常量引用的对象;在实际应用中仅方法区大小可能就达数百兆,通过逐一检查的方式会很耗时,显然不是很可取。另外,可达性分析这项工
爪哇部落格
·
2019-05-28 14:52
JVM学习
笔记 --------- 程序计数器
一、什么是程序计数器?程序计数器(ProgramCounterRegister)是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
笨鸟也想飞
·
2019-05-27 23:54
JVM
JVM学习
(三) 学习内存溢出错误的方式
了解内存溢出的方式为什么要尝试异常,意义在于知道异常错误发生的原因,知道如何触发,则遇到问题时候也能掌握方向,而不是一昧蒙头寻找答案提前参数要素:IDEA:-verbose:gc用于打印gc情况-Xmx:最大堆大小-Xms:初始堆大小-Xmn:年轻代大小-Xss:设置栈内存容量-Xmx:最大内存-Xmn:最小内存-MaxPerMize:最大方法区容量具体堆设置https://blog.csdn.n
CoffeeAndIce
·
2019-05-26 23:57
JVM
JVM学习
(三) 学习内存溢出错误的方式
了解内存溢出的方式为什么要尝试异常,意义在于知道异常错误发生的原因,知道如何触发,则遇到问题时候也能掌握方向,而不是一昧蒙头寻找答案提前参数要素:IDEA:-verbose:gc用于打印gc情况-Xmx:最大堆大小-Xms:初始堆大小-Xmn:年轻代大小-Xss:设置栈内存容量-Xmx:最大内存-Xmn:最小内存-MaxPerMize:最大方法区容量具体堆设置https://blog.csdn.n
CoffeeAndIce
·
2019-05-26 23:57
JVM
JVM学习
笔记3-类加载器
类加载器用来把类加载到JVM中.从JDK1.2开始,类的加载过程采用父亲委托机制(保证Java平台的安全).在此委托机制中,除了JVM自带的根类加载器外,其余的类加载器都有一个父加载器.当Java程序请求加载器loader1加载Sample类时,loader1首先委托紫的父加载器去加载Sample类,若父类加载器能加载,则由父加载器完成加载任务,否则才由加载器loader1本身加载Sample类有
lu322313
·
2019-05-22 23:42
JVM学习
笔记2-类的加载,连接和初始化
在Java代码中,类型的加载,连接和初始化过程都是在程序运行期间完成的加载:将已存在的.class文件文件从磁盘加载到内存中连接:将类与类之间的关系确立好,并完成字节码相关的验证,校验,并将附件运用变为直接引用初始化:对静态变量赋值优点:提供了更大的灵活性增加了更多的可能性类加载过程连接的三个步骤加载验证准备解析初始化类实例化拉结回收和对象终结调用一个类的main方法时,其执行步骤如下:Creat
lu322313
·
2019-05-22 23:12
JVM学习
笔记5-上下文加载器
当前类加载器-CurrentClassLoader每个类都会使用自己的类加载器(即加载自身的类加载器)来去加载其他类(指所依赖的类)如果ClassA引用了ClassB,那么ClassA的类加载器就会去加载ClassB(前提是ClassB尚未被加载)线程上下文加载器-ContextClassLoader线程上下文加载器是从JDK1.2开始引入的类Thread的getContextClassLoade
lu322313
·
2019-05-21 23:18
JVM学习
笔记4-类加载器代码示例及命名空间
重写findClass()方法类加载的双亲委托机制publicclassMyTest16extendsClassLoader{privateStringclassLoaderName;privatefinalStringfileExtension=".class";publicMyTest16(StringclassLoaderName){//将系统类加载器当做该类加载器的父加载器super();
lu322313
·
2019-05-21 23:37
JVM学习
笔记1-主动使用及代码示例
主动使用的七种情形创建类的实例访问某个类或接口的静态变量或对该静态变量赋值调用类的静态方法通过Class.forName进行反射初始化一个类的子类(也表示对父类的直接使用)JVM启动时被标记为启动类的类main方法JDK1.7开始提供的动态语言支持:java.lang.invoke.MethodHandle实例的解析结果REF_getStatic,REF_putStatic,REF_invokeS
lu322313
·
2019-05-19 23:28
JVM学习
(二)线程共享运行时数据区域 与 对象的内存分配
内存区域下半场,紧接上部分,线程共享的内存部分。java堆(javaHeap)主要用于存放对象,为几乎所有线程所共享根据规范:java堆并不一定需要内存上连续,只需要逻辑上连续即可由于使用永久代来实现方法区的话,某些情况会出现内存溢出的尴尬问题于是1.8后更新了,使用Metaspace代替永久代,解决永久代溢出的问题具体阐述:可以参照文章duanxz的博客中关于为什么替代掉永久代的问题方法区(
CoffeeAndIce
·
2019-05-15 23:09
运行时数据区域
JVM
JVM学习
(二)线程共享运行时数据区域 与 对象的内存分配
内存区域下半场,紧接上部分,线程共享的内存部分。java堆(javaHeap)主要用于存放对象,为几乎所有线程所共享根据规范:java堆并不一定需要内存上连续,只需要逻辑上连续即可由于使用永久代来实现方法区的话,某些情况会出现内存溢出的尴尬问题于是1.8后更新了,使用Metaspace代替永久代,解决永久代溢出的问题具体阐述:可以参照文章duanxz的博客中关于为什么替代掉永久代的问题方法区(
CoffeeAndIce
·
2019-05-15 23:09
JVM
JVM学习
(一)非线程共享-运行时数据区域
那么没有错,我码仔也要开始周志明的JVM之路,整本书模块很多,只取需要的部分进行学习,如果其中有什么错误的理解,请各位指出,让我能认识到不足的地方,谢谢。Tip:始终追寻第一遍是记忆,第二遍是修改,第三遍是回顾加修改JVM运行时数据区本部分采用是否线程隔离/线程共享来描述这个数据区可能会比较切实点。当然也有切分成数据流与指令流来描述,如下但是我采用的是这个↓一、程序计数器(ProgramCou
CoffeeAndIce
·
2019-05-14 00:50
JVM
JVM学习
笔记三【JVM的垃圾收集】
在本篇开始之前有几个问题需要大家思考一下:垃圾收集的哪里?哪些对象该被垃圾收集?对象如何被回收?对象的引用垃圾收集的哪里?我们知道JVM的运行时数据区分为:程序计数器,Java堆,Java虚拟机栈,本地方法栈,方法区(元数据区);其中程序计数器,Java虚拟机栈,本地方法栈是线程私有的,他们伴着线程的创建而产生,同时也随着线程的销毁而回收;栈中的栈帧也随着方法的进入和退出,有条不紊的在栈中执行者入
爪哇部落格
·
2019-05-09 17:11
JVM学习
笔记五【内存分配与回收策略】
Java体系的内存管理主要体现在两方面,一方面是给对象分配内存,另一方面则是回收分配给对象的内存;之前我们花了较大的篇幅介绍垃圾收集涉及到的算法,以及垃圾收集器,本文将同大家一起探讨内存的分配。对象优先在Eden分配大多数情况下,对象在新生代Eden分配,当Eden没有足够的内存空间时,将发生一次MinorGC。这里可能有些人还不明白MinorGC,MajorGC,FullGC有什么区别。Mino
爪哇部落格
·
2019-05-09 15:03
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他