摘要: 虚拟机类加载机制 一、类加载的阶段和时机 1.阶段 整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。 其中验证、准 阅读全文
posted @ 2017-08-16 22:35 寰殇丶天使 阅读(351) 评论(1) 推荐(0) 编辑
摘要: 虚拟机执行子系统 一、类文件结构 1.魔数和class版本 1.magic-魔数:0xCAFEBABE;4字节 2.minor_version:次版本,丶之后的数字;2字节 3.major_version:主版本,丶之前的数字;2字节 2.常量池 1.constant_pool_count:常量池常 阅读全文
posted @ 2017-08-11 21:25 寰殇丶天使 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 垃圾收集器与内存分配策略 由于JVM中对象的频繁操作是在堆中,所以主要回收的是堆内存,方法区中的回收也有,但是比较谨慎 一、对象死亡判断方法 1.引用计数法 就是如果对象被引用一次,就给计数器+1,否则-1 实现简单,但是无法解决对象相互引用的问题;实际上JVM也不是使用的此种方式,因此已下的程序我 阅读全文
posted @ 2017-08-02 20:24 寰殇丶天使 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 一、ServerSocketChannel Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 打开 ServerS 阅读全文
posted @ 2017-06-12 17:15 寰殇丶天使 阅读(280) 评论(0) 推荐(0) 编辑
摘要: Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。 打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使 阅读全文
posted @ 2017-06-12 16:01 寰殇丶天使 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 转载:并发编程网:ifeve.com NIO教程 Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 一、为什么使用Selector? 仅用单个线程来处理多个 阅读全文
posted @ 2017-06-11 11:38 寰殇丶天使 阅读(416) 评论(0) 推荐(0) 编辑
摘要: Java对象的强、软、弱和虚引用+ReferenceQueue 一、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强 阅读全文
posted @ 2017-06-10 16:14 寰殇丶天使 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 转载:自并发编程网ifeve.com 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。 transferFrom():被动接收 FileChannel的transferFr 阅读全文
posted @ 2017-06-10 11:51 寰殇丶天使 阅读(523) 评论(0) 推荐(0) 编辑
摘要: JDK8动态代理源码分析 动态代理的基本使用就不详细介绍了: 例子: 入口:newProxyInstance 从上面的分析中可以看出,newProxyInstance帮我们执行了生成代理类 获取构造器 生成代理对象这三步; 我们重点分析生成代理类 getProxyClass0 proxyClassC 阅读全文
posted @ 2017-06-10 11:21 寰殇丶天使 阅读(3088) 评论(0) 推荐(2) 编辑
摘要: java内存区域与内存溢出异常 一、运行时数据区域 1.程序计数器:线程私有,用于存储当前所执行的指令位置 2.Java虚拟机栈:线程私有,描叙Java方法执行模型;执行方法时都会创建一个栈帧,存储局部变量,基本类型变量,引用等信息 3.Java本地方法栈:线程私有,为虚拟机使用到的Native方法 阅读全文
posted @ 2017-06-08 21:22 寰殇丶天使 阅读(360) 评论(0) 推荐(1) 编辑