自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 MIDI二进制文件格式简析

MIDI二进制文件格式简析本文主要参考自Official MIDI SpecificationsChunks每个MIDI文件由一系列chunk组成,每个chunk的前四个字节为魔数(magic number),是由四个ASCII字符所组成的类型标识。目前标准格式中已定义的chunk类型只有header和track两种,其魔数分别为"MThd"和"MTrk",对于类型未被定义的chunk则应该被忽略。每个chunk在其四字符类型之后紧跟一个32位无符号整数,意味这一chunk后续将要读入的字节个数,每

2021-04-13 00:51:57 537

原创 深入JDK源码探索Java语言Lambda具体实现

当我刚刚开始学习Java的Lambda的时候,我曾经完全误解了它的实现方式,并且前段时间发现居然有些朋友和当时的我一样。比如下面这个例子:class Foobar { Runnable foobar() { return () -> {}; }}在最初的时候,我猜想它也许会像这样实现:class Foobar { Runnable foobar() { return new Runnable() { @Over

2021-03-26 22:14:06 205 2

原创 探索Java中隐藏的访问权限synthetic

探索Java中隐藏的访问权限synthetic首先参考一下 Java8 虚拟机规范中对The Synthetic Attribute的相关描述:A class member that does not appear in the source code must be marked using a Synthetic attribute, or else it must have its ACC_SYNTHETIC flag set. The only exceptions to this requi

2020-09-18 14:11:41 267

原创 深入JVM字节码探索assert关键字

深入JVM字节码探索assert关键字引言如果熟悉 C 语言,那么也许会使用过assert.h中的assert函数,在 Java 中的assert关键字也能够提供运行时断言这一功能,不过不同之处在于,Java 的断言可以在运行中决定是否开启,因此不必重新编译字节码。本文主要对assert这个关键字在 JVM 字节码层面的实现原理进行分析,讨论其运行时配置断言启用与禁用的方式。目录assert关键字基础assert实现原理分析assert运行时配置启用与禁用1. assert关键字基础c

2020-09-12 14:46:37 171

原创 深入JVM字节码探索switch枚举

深入JVM字节码探索switch枚举本文主要讨论对枚举switch的实现原理。以下代码作为示例:enum Foobar { FOO, BAR;}class Test { static int test(Foobar var0) { switch (var0) { case FOO: return 1; case BAR: return 2;

2020-09-09 20:42:34 250

原创 深入JVM字节码探索switch字符串

深入JVM字节码探索switch字符串本文主要讨论对字符串switch的实现原理。以下代码作为示例:class Test { static int test(String var0) { switch (var0) { case "foo": return 0; case "bar": return 1; case "10":

2020-09-09 14:19:07 192

原创 深入JVM字节码探索switch指令

深入JVM字节码探索switch指令引言从 C 到 C++ 到 Java 到一系列各种各样的语言,大多都支持多路分支语句,比如 Kotlin 的when和 Rust 的match等等,在 Java SE 14 版本的语言规范也添加了对switch表达式的支持。本文主要对 Java SE 8 版本中的switch语句从字节码层面进行研究,理解switch语句相关的各种细节,并尝试着对其编译产物人工地进行反编译,探索字符串switch与枚举switch的具体实现方式。目录switch关键字基础sw

2020-09-09 00:10:44 564

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除