
JVM
文章平均质量分 86
that_is_cool
I know you are wrong,but that's cool
展开
-
JVM内存模型的简单了解
了解JVM的运作对于Java程序员来说是一个知根知底的过程,可以帮助程序员写出高效的代码,同时对自己代码的运转有个了解,本文我们简单地介绍下JVM的内存模型。 首先的,我们说说程序计数器,程序计数器的作用其实类似于传统处理器中的PC,是正在执行的字节码的行号指示器,通过改变自身的值,来控制需要选取哪一条字节码指令,从而做到分支、跳转、循环、异常处理等基础操作。为了保证每一次线程在获取...原创 2018-03-27 10:40:35 · 629 阅读 · 0 评论 -
Java类加载机制
上文我们说到了JVM的内存模型,本文我们进一步的介绍JVM的类加载机制,先上一张很经典的图: 由该图,我们开始展开探讨。上图将类加载的步骤分为七步,加载,验证,准备,解析,初始化,使用,卸载。 一、加载 加载的核心目的是为了将类信息读到内存中,Java中提供一个java.lang.ClassLoader的loadClass()方法,具体步骤一共细分...原创 2018-03-27 13:13:27 · 148 阅读 · 0 评论 -
GC:JVM的新生代、老年代、MinorGC、MajorGC
首先,看一张图,JVM堆内存的分布图如下: 之前我们把JVM内存分为了堆,栈,方法区,直接内存等,而我们在开发过程中最关注的的就是堆区,同时这也是GC所活跃的位置,准确的来说上诉分类是GC做的分类。 先说说新生代,新生代占三分之一大小,由于要频繁地创建对象,所以是MinorGC的活跃范围。新生代分为Eden区域,SurvivorFrom,SurvivorTo三个区域,...原创 2018-04-19 18:18:06 · 412 阅读 · 0 评论 -
Java常量池总结
Java常量池总结 一、基本概念介绍 什么是常量 用final修饰的变量即为常量(成员变量、局部变量、静态变量,只要被final给修饰过的)。 什么是常量池 先说静态常量池,来看看class文件中都包含了哪些内容。 其中前四个字节为魔数(确定一个class文件能否被JVM解析),后四个字节为存储版本号,其中前两个字节为次版本号,后两个为主版本号,最后就是...原创 2018-06-02 18:09:49 · 245 阅读 · 0 评论 -
类加载详述以及双亲委派模型
类加载详述以及双亲委派模型 一、简介类加载过程 在上一文中,已经简单的讲解过类加载的步骤,此处稍做复习一下,不经意一看,已经是三月份的文章了...(文章链接) 类加载机制大方向分为三个步骤: 1、加载:用于查找和导入Class文件。 2、链接(链接又分为如下三个步骤):校验:用于校验二进制文件的合法性;准备:给类的静态变量分配内存,被赋上默认值;解析:将符号引用转化为...原创 2018-06-20 22:36:12 · 158 阅读 · 0 评论 -
GC:深入理解GC--细数GC回收器
GC:深入理解GC--细数GC回收器 前言:本文将深入解释GC的运行原理--什么对象会被GC回收;以及GC回收器的区别 GCROOT 大家都知道,GC会对不可达对象进行内存回收,那么如何标记不可达对象呢? 这里引出一个GCROOT的概念,一个对象如果和GCROOT对象没有链接,就说明这个对象不可达,便可以被回收。 通常来说,以下的对象会被作为GCROOT对象:Java...原创 2018-06-29 19:40:13 · 3810 阅读 · 1 评论 -
Tomcat类加载机制以及线程上下文类加载器
Tomcat类加载机制以及线程上下文类加载器 tomcat类加载需要解决的问题tomcat是一个很经典的web服务器,一个服务器就相当于一个Java应用,而在这个Java应用中又有着多个被部署的Web应用,因此,有着如下的几个问题等着被解决:1、多个web应用之间不能相互影响;2、jsp能够热部署;3、web服务器本身使用的类库,不被干扰;4、多个web应用能够共享l...原创 2018-07-26 20:05:43 · 2252 阅读 · 0 评论