2022 年 05 月 - 19 文章
关于OpenJdk8中的RegisterThread和objc_registerThreadWithCollector代码拾遗 置顶! 有更新!
OpenJDK8 编译构建基础设施详解(2) - Make流程解析 置顶! 有更新!
OpenJDK8 编译构建基础设施详解 - Make流程解析
在上一篇文章中, 较详细的分析了 OpenJDK 编译过程中的两步的前一步:./configure
, 这一篇主要来分析下make流程. make流程主要涉及的是OpenJDK 的makefile的结构, 以及make命令的工作流程.
您也可以在知乎阅读此文: 知乎专栏-跟我一起阅读OpenJDK源
Autoconf 教程 Part-2 [翻译] 有更新!
一文读懂RateLimiter原理与细节 - Google Guava RateLimiter 置顶! 有更新!
本文对Google的Guava包的Ratelimiter原理进行了详细而深入的分析. 旨在梳理其实现基本原理与代码逻辑. 着重对突发型限流(Burst)与平滑限流器的原理进行了深入介绍.
Gerrit 自动加2(code review)和提交(submit) 有更新!
Autoconf 教程 Part-1 [翻译] 置顶! 有更新!
OpenJDK configure文件代码片段conf_option处理逻辑 有更新!
OpenJDK8 编译构建基础设施详解(1) - A New OpenJDK Build-Infra Detail With GNU MAKE And AutoConf 置顶! 有更新!
此篇文章分析下OpenJDK的编译构建基础设施 ,基于OpenJDK 版本 jdk8u
您也可以在知乎阅读此文: https://zhuanlan.zhihu.com/p/518013598
GNU Make手册之M4宏处理语言入门 有更新!
写到一半,感觉我可以放弃了. 这个是官方手册. https://www.gnu.org/software/m4/manual/m4.html 需要的自取.
总结:
- 这个教程更多的是讲M4怎么用,而是针对这个软件,这个工具.这个soft. 并没有较好的讲解M4的语法.或者一些基本使用.
- AutoConf里面只是使用了M4这个语言而已. 里面的宏应该是AutoConf自己定义实现的. 只是需要M4解析器去解析扩展而已. 因此对于一般的了解AutoConf 我觉得仅了解基本的原理过程.(比如M4是什么,起了什么作用等.)
- 本身要理解AutoConf,不需要对M4有更加深入的了解.
shell中获取bash文件的名称与目录 有更新!
脚本中经常会取当前脚本的文件名和目录进行操作.比如日志打印.和定位相对位置的配置等. 这里记录一下常用的命令
为Msql数据库编码UTF8过滤emoj表情 有更新!
由于mysql的历史原因.其UTF-8是一个残缺品.最多支持3字节编码的UTF-8编码. 而要支持4字节的UTF-8编码,实际要把字符集编码修改为
utf8mb4
. 如果表已经通过存在,修改风险比较大. 那我们该怎么办呢.
再说一说汉字的UTF8编码的问题 - 一个汉字UTF8编码占用多少个字节 有更新!
虽然这个问题一直在接受新知识,同时不断更正自己对字符集的理解. 但是时间久了,难免自己的知识理解又模糊了. 在此把一些常用的知识点做一个简单的梳理.
首先回答一下如下问题:
- 汉字的GBK编码占用几个字节.
- 一个汉字的UTF-8编码占用几个字节.
- UTF-8与UNICODE或者UTF-16的关系是什么.
- 一个UNICODE编码怎么转换成UTF-8编码.
- Java的char内部到底存储的是什么.
回答完如上几个问题基本日常的问题都解决了.
说说OpenJDK8中main函数引用的FULL_VERSION在哪定义 有更新!
刚开始看
openJDK
的源码的时候,准备调试第一个HelloWorld就被难在这里了.
如截图中的这个FULL_VERSION
是在哪定义的,找了半天也没有找到. 但是调试的时候它就是有值的. 今天就来看看这个值到底是怎么声明的.
基于Mac OS Bigsur 编译OpenJDK8 有更新!
环境介绍:
操作系统: Mac OS BigSur , Version 11.6.5
xcode: https://download.developer.apple.com/Developer_Tools/Xcode_12.5.1/Xcode_12.5.1.xipXcode 12.5.1 Build version 12E507
BootJDK 版本: jdk-7u80-macosx-x64
OpenJDK版本: openjdk jdk8u jdk8u
Make 版本: GNU Make 3.81
GNU Makefile eval 函数用法 及 OpenJDK中MakeHelpers.gmk辅助函数定义解析 有更新!
解析makefile中的eval的基本用法. 最后对 MakeHelpers.gmk 中定义的辅助函数的原理进行简单说明.
定位 alias 定义的文件
有时候我们为了方便会定义一些命令的别名,alias,但是定义后的别名很难找出来是什么时候,哪个文件定义的,所以可以用这个方法
GNU Make 功能说明及语法拾遗 - ifeq 和 函数参数中空格杂谈 有更新!
makefile
是个古老又难以回避的技术. 同shell一样,其中一些语法特别古怪又难以琢磨. 这里GNU Make
的一些语法进行拾遗补充说明.