
Java虚拟机
匍匐-菜鸟
好好做一件事,好好做下去
展开
-
Java虚拟机(一)体系结构简要介绍
当编写运行一个Java程序时,把用java编写的源代码编译成为.class文件,然后再用虚拟机运行.class文件,当编写的程序调用JavaAPI时,如使用了Java中的I/O流,可以调用Java的API方法满足程序的调用需要。Java虚拟机提供了一个平台,所有的Java程序都需要在这上面编译,从1.2版本开始成为Java2平台,java程序可以在不同的计算机上执行,因为其平台可以用软件实现。原创 2018-03-30 14:09:53 · 321 阅读 · 0 评论 -
JVM垃圾收集器和内存分配
一、串行回收器 1.新生代串行回收器对于新生代串行回收器有两个重要的特点,第一个是,它仅仅使用单线程进行垃圾回收;第二个是它是独占式的拦击回收,也就是说在串行收集器进行垃圾回收时java相应的应用程序中的线程都需要暂停,等待回收器的工作的完成,这种情况被称作为STW,即stop the world,这个会对用户的体验造成很大的影响,如果对于实时性较强的系统,这种现象往往是不能够接受的,原创 2018-04-16 15:33:37 · 422 阅读 · 0 评论 -
JVM中垃圾回收概念和算法
说道垃圾回收,首先需要理解的是,什么才算做为垃圾,我们所知的垃圾回收指存在于内存中的、不会再次被使用的对象,而回收则是相当于将原来对象所占用的内存进行清除,这样的话就能够有足够的空间进行运行,所以如果我们不对产生的对象进行清除的话那么就会出现内存全部占用,造成内存溢出的情况,所以,垃圾回收也算一种常用的内存清理,在早期的C++中,其实是通过new和delete控制对象的创建和销毁,而在java中仅原创 2018-04-11 19:34:13 · 915 阅读 · 0 评论 -
Java中的四种引用与垃圾回收
java中垃圾回收的基本思想是考察每一个对象的可达性,即从根节点出发是否可以被访问到这个对象,如果这个对象被访问到说明这个对象正在被使用,如果所有的节点都无法获取到整个对象,那么说明这个对象不再被使用了,一般说来这种对象是需要被回收的,但是,一个这样的对象在某些条件下复活了自己,如果这样的话那么对他的回收是不合理的,那么我们可以定义如下的状态来确保这个对象可以被回收,而且不会引起其他的异常。1原创 2018-04-11 23:35:31 · 2260 阅读 · 0 评论 -
Java虚拟机Class装在系统初探(一)之类的加载
之前我们了解到,Class在java中经常以文件的形式存在,并且只有当被虚拟机装载的Class类型才能在程序中使用,系统装载类的过程可以划分为三个部分,加载,链接初始化。可以参考下图帮助理解,好有个大致的印象。类的装载像前面说的那样,java虚拟机并不会无条件的加载类,而是当一个类或者是接口在初次使用前就必须要进行初始化,这里的使用说的是“主动”使用,主动的情况有一下几种:1.当创建一个类的实...原创 2018-05-28 20:05:55 · 234 阅读 · 0 评论 -
Java虚拟机Class装在系统初探(一)之类的连接及初始化
当类加载之后需要进行类的连接,而此步骤包含了三个步骤来确定类的准确性,不会出现错误保证能够正确的初始化,所以这里需要进行下面三个步骤:验证类:其包含四个部分:分别为格式检查,语义检查,字节码验证,符号引用验证。格式检查:必须判断类的二进制数据是否符合格式的要求和规范,比如魔数检查,版本的检查,以及长度的检查,是不是符合Java的文件的规范,检查的版本号是否可以在此虚拟机中运行,以及文件中的...原创 2018-05-29 12:56:10 · 209 阅读 · 0 评论 -
JVM学习(一)使用netbeans调试Hotspot虚拟机
折腾了一天,把调试Hotspot踩过的坑分享出来,注意使用root权限,切记!!!首先说下环境:Centos 7 ,jdk1.7u80.获取为官网,可参考此博客的获取方式:https://blog.youkuaiyun.com/weixin_39917216/article/details/81296006openjdk 源码获取网址:http://hg.openjdk.java.net/jd...原创 2019-02-19 11:12:25 · 1157 阅读 · 0 评论 -
Java虚拟机类加载器与虚拟机字节码执行引擎
1.类加载器对于类加载器,java虚拟机规范中有这么一句,“通过一个类的全限定名来获取描述此类的二进制字节流”,正因为这个看似宽泛的约束使得java虚拟机的实现有了很多的种类,各自有自己的特点并占有自己的领域。虽然类加载器是由Applet技术开发出来的,但是Applet技术基本上已经挂了,但是因类加载思想却在类的层次划分,OSGI,热部署,代码加密等领域大放异彩。对于任意一个类,都需要由加...原创 2019-03-05 15:00:32 · 790 阅读 · 0 评论 -
Java中关于内存泄漏出现的原因汇总及如何避免内存泄漏
转载:》https://www.jb51.net/article/92311.htm内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 cod...转载 2019-08-30 11:09:23 · 507 阅读 · 0 评论