JVM虚拟机
BehandTheTime
这个作者很懒,什么都没留下…
展开
-
JVM类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析、初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制 从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using原创 2016-12-12 10:51:19 · 363 阅读 · 0 评论 -
Java NIO使用及原理分析(二)
转载自:李会军•宁静致远 在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的转载 2016-12-21 14:46:02 · 277 阅读 · 0 评论 -
Java NIO使用及原理分析 (四)
转载自:李会军•宁静致远 在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处转载 2016-12-21 14:49:27 · 320 阅读 · 0 评论 -
Java NIO使用及原理分析(三)
转载自:李会军•宁静致远 在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。 缓冲区的分配 在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()转载 2016-12-21 14:48:25 · 293 阅读 · 0 评论 -
Java NIO使用及原理分析 (一)
转载自:李会军•宁静致远 最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。 在Java1.4之前的转载 2016-12-21 14:47:14 · 304 阅读 · 0 评论 -
JVM结构、GC工作机制详解
原文地址:http://blog.csdn.net/tonytfjing/article/details/44278233 网上有很多关于GC和JVM的文章,这篇博文主要是根据我最近看《深入理解Java虚拟机》的一些体会总结出来的,希望对新手有些帮助,也欢迎大牛拍砖。文章主要分为以下四个部分 JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。 一、JVM结构转载 2016-11-08 19:44:14 · 536 阅读 · 0 评论 -
Jvm垃圾回收器总结
HotSpot JVM收集器框架 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默原创 2016-12-09 14:19:26 · 469 阅读 · 0 评论 -
JAVA对象的创建过程
JAVA是一门面向对象的语言,在JAVA程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中对象的创建过程是什么样的呢? 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程,在类加原创 2016-12-13 10:27:46 · 567 阅读 · 0 评论 -
JAVA内存区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 一、程序计数器(寄存器) 当前线程所执行的字节码行号指示器字节码解释器工作依赖计数器控制完成通过执行线程行号记录,让线程轮流切换各条线程之间计数器互不影响线程私转载 2016-12-13 09:21:01 · 285 阅读 · 0 评论 -
深入分析ClassLoader
why? ClassLoader,即Java类加载器,主要作用是将class加载到JVM内,同时它还要考虑class由谁来加载。在说java的类加载机制之前,还是像前面的博客一样,先说说为什么要知道java的类加载机制。个人认为主要有以下几个原因: 按需加载。JVM启动时不能确定我要加载哪些东西,或者有些类非常大,我只希望用到它时再加载,并非一次性加载所有的class,所以这时候了解了转载 2016-12-09 10:06:23 · 378 阅读 · 0 评论 -
JAVA对象创建方式
有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式。 2.运用反射手段,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 3.调用对象的clone()方法。 4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObje转载 2016-12-13 10:19:27 · 275 阅读 · 0 评论