随笔分类 - Java / JVM
摘要:1. 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容 2. 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容
阅读全文
摘要:1. 重载与重写 1.1 Java虚拟机 虚拟机识别方法时主要根据类名,方法名和方法描述符(参数类型和返回值类型). 如果出现类名,方法名和方法描述符相同的方法,Java虚拟机在类加载的验证阶段报错. 1.2 Java语言 在同一个类中,方法名称相同,参数类型不同的方法称之为重载.(返回值类型不影响
阅读全文
摘要:1. 概述 JDK1.6版本花费了大量精力去实现各种锁优化,如适应性自旋,锁消除,锁粗化,轻量级锁,偏向锁等,这些技术都是为了在线程期间更高效的共享数据,以及解决竞争问题。 2. 自旋锁与自适应自旋 传统的互斥锁对性能最大的影响是阻塞的实现,线程的挂起和恢复需要转入内核态中完成,相当影响效率。 多线
阅读全文
摘要:1. 概述 虚拟机把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,这个动作的代码模块称为类加载器。 2. 类与类加载器 对于任意一个类,都需要加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。 比较两个是否相等只有在同一个类加
阅读全文
摘要:1. 概述 一个.java文件编译为.class文件后才可以被加载到虚拟机中运行和使用. 虚拟机把描述类的.class文件加载到内存, 并对class文件进行验证、准备、解析和初始化后, 最终形成可以被虚拟机直接使用的Java类型, 这就是虚拟机的类加载机制. 2. 类加载的时机 类从加载到虚拟机内
阅读全文
摘要:1. 标记—清除(Mark-Sweep)算法 1. 标记—清除(Mark-Sweep)算法 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。
阅读全文
摘要:1. 判断对象是否可以进行回收 1.1 引用计数算法 定义 : 为对象添加一个引用计数器, 每当有一个地方引用它,计数器值就加一, 当引用失效时, 计数器值就减一. 优点 : 实现简单, 效率高 缺点 : 很难解决对象之间相互循环引用的问题 1.2 可达性分析算法 基本思想 : 通过一系列称为"GC
阅读全文
摘要:1.对象的创建 1.对象的创建 1.1 当虚拟机遇到一条new指令时 a.判断该指令参数能否在常量池定位到一个类的符号引用; b.符号引用代表的类是否已被加载 解析和初始化过。如果没有则执行类加载。 c.内存分配,对象所需的内存大小在类加载后就完全确定; 根据堆中的内存是否为规整的可分为两种分配方式
阅读全文
摘要:1. Java内存结构 1. 1程序计数器(线程私有) 当前线程的所执行字节码的行号指示器, 字节码解释器工作时通过改变计数器的值选择下一条需要执行的字节码指令。 java虚拟机的多线程通过轮流切换分配处理器(对于多核处理器来说是一个内核)执行时间来实现,一个时刻,一个处理器只会执行一条线程。
阅读全文

浙公网安备 33010602011771号