深度研究JDK的各种技术细节
打算建立一个JDK网站,将目前JDK的各种重要特性都深入分析一下。希望JDK中各种技术实现细节都可以在这个网站上查到。相关的模块以及阅读顺序如下图所示。
没有将一些内容规划进来,Java语言基本语法太简单,Java框架、中间件等内容太多了,JDK类库资料太丰富了,所以这些内容就暂时不写了。下面就是3个免费部分的目录,如下:
1、字节码增强
字节码增强相关内容如下:
第1篇-字节码增强概述
第2篇-字节码增强的应用
第3篇-字节码增强框架之ASM
第4篇-字节码增强框架之Javassist
第5篇-字节码增强框架之ByteBuddy
第6篇-反射
第7篇-MethodHandle与MethodType
第8篇-Lambda
第9篇-Attach机制
第10篇-JavaAgent
第11篇-字节码增强源代码剖析
第12篇-DIY反编译工具
第13篇-字节码增强经典工具
2、Java性能优化
Java性能优化相关内容如下:
1、基础
第1篇-JDK自带监控及诊断工具
第2篇-常见诊断工具的实现技术
第3篇-JDK自带工具源代码剖析
第4篇-PerfData
第5篇-虚拟机选项
第6篇-Hook 2、JVMTI
第1篇-JVM Tool Interface(JVMTI)
第2篇-JVMTI Agent
第3篇-调试 3、JMX
第1篇-JMX介绍
第2篇-JMX的Notification
第3篇-JMX源代码分析 4、SA
第1篇-SA介绍
第2篇-SA的实现方式 5、栈
第1篇-获取Java调用栈
第2篇-获取本地调用栈
第3篇-jstack
第4篇-async-profiler
第5篇-火焰图
第6篇-使用Java Flight Recorder采集热点
第7篇-使用async-profiler采集热点 6、内存
第1篇-Java内存概述
第2篇-NMT
第3篇-直接内存
第4篇-内存分配热点 7、堆
第1篇-Eclipse MAT工具解读
第2篇-堆导出文件heapdump 8、GC
第1篇-GC概述
第2篇-GC信息采集源码剖析
第3篇-Serial GC日志解读
第4篇-Parallel Scavenge的GC日志解读
第5篇-G1 GC日志解读 9、Crash文件
第1篇-虚拟机崩溃处理
第2篇-虚拟机对crash的处理
第3篇-crash文件解读
第4篇-核心转储文件 10、案例剖析
...
3、虚拟机学前基础
虚拟机学前基础的相关内容如下:
1、C/C++
第1篇-宏
第2篇-模板类
第3篇-extern关键字
第4篇-动态分派
第5篇-指针和地址偏移
第6篇-重载运算符
第7篇-RAII
第8篇-对齐
第9篇-C/C++中嵌入汇编语法
第10篇-C++一种巧妙的内存管理方式
第11篇-Arena管理内存 2、Linux
第1篇-C++线程
第2篇-程序调用约定
第3篇-信号
第4篇-大页
第5篇-Linux内存布局
第6篇-Linux内存查看
第7篇-Linux内存使用
第8篇-动态链接库 3、x86寄存器与指令
第1篇-x86通用指令
第2篇-eflags寄存器
第3篇-lock指令
第4篇-SIMD
第6篇-CAS 4、x86机器指令
第1篇-指令格式
第2篇-指令前缀
第3篇-Opcode操作码
第5篇-ModR/M
第6篇-SIB
第7篇-Displacement
第8篇-Immediate 5、x86架构CPU
第1篇-x86寄存器
第2篇-Cache
第3篇-预取
第4篇-NUMA架构
第5篇-内存屏障 6、虚拟机研究工具
第1篇-JITWatch和hsdis
第2篇-C1 Visualizer
第3篇-C2 IdealGraphVisualizer
第4篇-jtreg回归测试
第5篇-JMH
第6篇-HSDB
3个部分的内容都是紧紧围绕着JDK来介绍的,JDK或HotSpot VM涉及不到的基础知识点不会介绍。例如x86架构CPU中介绍预取是因为HotSpot VM有部分源代码解读需要有预取基础,介绍NUMA架构是因为GC有对NUMA架构的支持。
付费部分在今年至少会有3个部分内容完成更新,分别为:
1、Javac前端编译器(内容主要来自于《深入解析Java编译器:源码剖析与实例详解》一书),内容会有少量更新
2、虚拟机基础(内容主要来自于《深入剖析Java虚拟机:源码剖析与实例详解》一书内容),这一章节内容和书比起来,会有许多的更新和增加,增加的部分是虚拟机选项、CMake调试HotSpot VM、CDS、压缩指针等内容,更新主要是尝试让现有的许多内容更深入透彻
3、虚拟机运行,目录已经大概确定,其中涉及到许多复杂的内容,争取早日更新完成。
如果今年能顺利完成如上3个部分内容的更新,接下来更新的是GC的Parallel Scavenge。在虚拟机基础中介绍过Serial GC,这是最简单的一个GC,以这个为基础,Parallel Scavenge不是很难,这个GC仍然是吞吐量的首选,现在仍然比较重要。
下面更新的是G1和C2 ... ,努力更新让大家不要等待太久...
深度研究JDK的各种技术细节的更多相关文章
- 深度研究:回归模型评价指标R2_score
回归模型的性能的评价指标主要有:RMSE(平方根误差).MAE(平均绝对误差).MSE(平均平方误差).R2_score.但是当量纲不同时,RMSE.MAE.MSE难以衡量模型效果好坏.这就需要用到R ...
- Dotnet Core IHttpClientFactory深度研究
今天,我们深度研究一下IHttpClientFactory. 一.前言 最早,我们是在Dotnet Framework中接触到HttpClient. HttpClient给我们提供了与HTTP交互 ...
- 研究jdk关于TreeMap 红黑树算法实现
因为TreeMap的实现方式是用红黑树这种数据结构进行存储的,所以呢我主要通过分析红黑树的实现在看待TreeMap,侧重点也在于如何实现红黑树,因为网上已经有非常都的关于红黑树的实现.我也看了些,但是 ...
- [转]关于strtok和strtok_r函数的深度研究
在linux环境下,字符串分割的函数中,大家比较常用的是strtok函数,这个函数用处很大,但也有一些问题,以下将深度挖掘一下这个函数的用法,原理,实现,其次,该函数是不可再入函数,但是在linux ...
- 深度剖析JDK动态代理机制
摘要 相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定一组接口及目标类对象就能动态的获得代理对象. 代理模式 使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过 ...
- Java多线程之interrupt()的深度研究
近期学习Java多线程的中断机制,网上的帖子说得很浅,并没深究其原理.看了Java源码,对Java的中断机制有了略深入的理解,在这篇文章中向感兴趣的网友分享下.这篇文章主要通过一个典型例子对中断机制进 ...
- keystone 认证深度研究分析
一.Keystone Token深度概述 Keystone作为OpenStack项目基础认证模块,目前支持的token类型分别是uuid.pkiz.pki.fernet. 首先,简要叙述一下这四种类型 ...
- 操作系统深度研究(75页PPT)
上一篇:命令行版的斗地主你玩过没? 内容覆盖操作系统基本概念.分类.关键技术,体系架构,发展历程和主流国产操作系统厂商分析. 文中报告节选自兴业证券经济与金融研究院已公开发布研究报告,具体报告内容及相 ...
- Cookie在IE缓存问题深度研究
最近在发布net到生产环境的时候,测试发现了问题,IE的登录无效. 同样的版本在QA环境没有遇到问题. 代码一样,chrome,firefox 都可以.就是IE不行,调试发现 登录完成,读取cooki ...
- 深度研究Oracle数据库临时数据的处理方法
在Oracle数据库中进行排序.分组汇总.索引等到作时,会产生很多的临时数据.如有一张员工信息表,数据库中是安装记录建立的时间来保存的.如果用户查询时,使用Order BY排序语句指定按员工编号来排序 ...
随机推荐
- Spring RestTemplete支持Https安全请求
实现步骤 Step1: 自定义ClientHttpRequestFactory package com.example.demo.https; import org.springframework.h ...
- Redis源码历史版本下载地址和Redis的Windows版本服务端/客户端下载地址
Redis源码历史版本下载地址:http://download.redis.io/releases/ Redis的Windows版本服务端/客户端下载地址:https://github.com/mic ...
- 陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践
本文由冀浩东分享,原题"单核QPS近6000S,陌陌基于OceanBase的持久化缓存探索与实践",为了阅读便利,本文进行了排版和内容优化等. 1.引言 挚文集团于 2011 年 ...
- kubernetes系列(六) - 资源清单
目录 1. kubernetes中的资源 1.1 定义 1.2 资源类型 1.2.1 工作负载型资源对象(workload) 1.2.2 服务发现及均衡资源对象 1.2.3 配置与存储资源对象 1.2 ...
- Appium_iOS测试脚本(1)
经过不断的调试WebDriverAgent, 现在终于可以执行ios的自动化测试脚本了, # This sample code uses the Appium python client # pip ...
- 史上最全memcached面试26题和答案
Memcached是什么? Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思. Memcached的作用? Memcached的作用:通 ...
- biancheng-go语言概要总结
http://c.biancheng.net/golang/intro/ Go语言总结 1.Go 使用编译器来编译代码.最佳的平衡:快速编译,高效执行,易于开发.因为Go语言没有类和继承的概念,但是它 ...
- C#中的内部函数(子函数)
private bool GetMedicalAdvice(string zyID, out DataTable dtM, out DataTable dtD) { bool result = fal ...
- react验证参数格式类型
首先你需要下载 cnpm i prop-types 安装验证数据类型的插件: 子组件 import React, { Component } from "react"; impor ...
- Qt Quick 实现一个右下角弹出消息的组件
目录 开发环境 简介 预览图 如何使用 代码 main.qml MessageView.qml Background.qml ScroolBar.qml MessageQueueView.qml 开发 ...