首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java 基础
金銀銅鐵
创建于2025-06-27
订阅专栏
通过 javap 命令查看 class 文件,从而了解 java 的一些特性是如何实现的
等 1 人订阅
共14篇文章
创建于2025-06-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[Java] 浅析密封类(Sealed Classes) 在 class 文件中是如何实现的
浅析 Java 中的密封类(Sealed Classes) 在 class 文件中是如何实现的。密封类所 permit 的子类的信息保存在 PermittedSubclasses 属性中
[Java] 浅析 Set.of(...) 方法
浅析 java 中的 Set.of(...) 方法。JDK 9 在 java.util.Set 接口中提供了一组 of(...) 静态方法。本文会探索这背后发生了什么
[Java] 浅析注解是如何实现的
浅析 java 中的注解是如何实现的。主要结论:每个注解都 extend 了 Annotation 这个 class,每个注解都是接口,注解的实现用到了动态代理。
[Java] functional interface 分类
functional interface 小汇总。Java 中有个特殊的注解 @FunctionalInterface,JDK 中的一些接口带有这个注解,这些接口有什么区别呢?
[Java] 以 IntStream 为例,浅析 Stream 的实现
以 IntStream 为例,浅析 Java 中 Stream 的实现。我们在使用 Stream 时,典型的步骤是,创建 Stream 执行若干(可以是 0 个)中间操作,执行终止操作。
[Java] 变长参数是如何实现的
Java 中的变长参数是如何实现的。javac 编译器会将变长参数放置在一个数组中,然后调用对应的方法。接受变长参数的方法会有一个特殊的 flag 被置位
[Java] 验证 ArrayList 的扩容机制
验证 ArrayList 的扩容机制。通过反射,我们可以观察到 ArrayList 的 size 和 capacity 的变化。
[Java] 浅析枚举的实现
Java 枚举简介 1. 在枚举类中,每个常量都是 public static final 的实例 2. Enum 这个基类中定义了 name/ordinal 字段和对应的 getter 方法
Java 如何保存参数的名称
javac 命令的 -parameters 选项可以将方法参数的名称信息保存在 byte code 中
[Java] 内部类 (inner class) 为何可以访问宿主类的成员 (第一部分)
Java 内部类为何可以访问宿主类的成员 内部类的构造函数中会有一个宿主类的实例作为参数 这样,在创建内部类的实例时,总会有一个宿主类的实例与之绑定
[Java] 内部类 (inner class) 为何可以访问宿主类的成员 (第二部分)
宿主类中有 NestMembers 属性,内部类中有 NestHost 属性,通过读取这两个属性,虚拟机会允许它们访问对方的 private 成员
[Java] 内部类 (inner class) 为何可以访问宿主类的成员 (第三部分)
在 Java 11 之前,javac 编译器可以通过添加合成方法,从而让宿主类和内部类互相访问对方的 private 成员
Java 中的断言是如何实现的
Java 中的断言是如何实现的:在编译生成的 class 文件中,会有对应的静态合成字段表示在这个类中断言是否关闭。 在运行时,静态初始化语句块会对这个字段赋值。
Java 是如何支持 for each 方式的循环的
Java 是如何支持 for each 方式的循环。 若 for each 的对象是数组,编译器会添加遍历数组的逻辑。 若 for each 的对象是 Iterable 实例,编译器会用迭代器遍历它