Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  •   
  •   

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(八)

Java内存模型与线程硬件的效率与一致性由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的告诉缓存(Cache)来作为内存与处理器之间的缓冲。虽然高速缓存解决了处理器与内存的速度矛盾,但也引入了新的问题:缓存一致性(Cache Coherence)。 为了解决一致性问题,需要各个处理器访问缓存时都遵守一些协议,在读写时要根

2019-05-20
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(七)

早期(编译期)优化从Sun Javac的代码来看,编译过程大致分为3个过程,分别是: 解析与填充符号表过程。 插入式注解处理器的注解处理过程。 分析与字节码生成过程。 解析与填充符号表词法分析是将源代码的字符流转变为标记(Token)集合,单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为标记。在Javac的源码中,词法分析过程由com.s

2019-05-10
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(六)

虚拟机字节码执行引擎从外观(Facade)上看,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接接方法返

2019-04-19
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(五)

虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语

2019-04-17
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(四)

类文件结构Class文件是一组以8位字节为基础单位的二进制流。根据Java虚拟机规范的规定,Class文件采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成的字符串值。 表是由多个无符号数或者其他表作为数据项构成的复合数据类型,所有的表都习惯性地以“_info”结尾。表

2019-04-12
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(三)

虚拟机性能监控与故障处理工具 命令行工具 jps:虚拟机进程状况工具 jstat:虚拟机统计信息监视工具 jinfo:Java配置信息工具 jmap:Java内存映像工具 jstack:Java堆栈跟踪工具 HSDIS:JIT生成代码反汇编 可视化工具 jconsole:Java监视与管理控制台 jvisualvm:多合一故障处理工具

2019-04-09
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(二)

垃圾收集器与内存分配策略 哪些内存需要回收? 什么时候回收? 如何回收? 引用计数算法(Reference Counting)实现简单,判定效率高,但主流的Java虚拟机里面都没有选用引用计数算法进行内存管理,主要原因就是很难解决对象之间相互循环引用的问题。 可达性分析算法(Reachability Analysis)基本思路:通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始自

2019-04-07
Java
JVM Java 读书笔记

《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记(一)

Java 内存区域与内存溢出异常 运行时数据区 所有线程共享的数据区 方法区(Method Area) 堆(Heap) 执行引擎 本地库接口 线程隔离的数据区 程序计数器(Program Counter Register) 本地方法栈(Native Method Stack) 虚拟机栈(VM Stack) 程序计数器当前线程所执行的字节码的行号指示器。如果执行Java方法,记录正在执

2019-04-02
Java
JVM Java 读书笔记

停更一段时间

主要是因为对自己生产的内容的深度不满意,然而目前又处于技术转向期,还需要更多的时间去沉淀,厚积而薄发,期待自己的蜕变。

2018-04-16
生活
生活

2017 Milestones

时间 事件 收获及心得 1月末 Material-UI Demo 熟悉 ES6&React&Webpack,理解了单页面应用的开发模式 3月初 使用 Dva.js 实现 new-cross-reach 前端 新技术提升了生产力,但生产力还是得靠人 4月中 初步完成,进一步了解 saga 异步编程很神奇,Generator很强大 5月初 JWT+Apache

2017-12-05
生活
生活
123

搜索

Hexo Fluid