跳至内容

Lzxz1234 的小站

个人博客,专注 IT 相关技术分享

  • GitHub
  • 腾讯云

标签: JDK

Java 运行时反射获取来自继承的泛型

2022年3月18日 lzxz1234 Leave a comment

背景 正常情况下 Java 的反射是可以获取到普通的泛型类型的,例如假设存在基类 此时直接执行 可以拿到类型为 ParameterizedType 的 java.util.List<java.lang.String> 对象 但特殊情况下,例如子类 此时查询 S

阅读全文

Java 基于 ByteBuddy 重写系统当前时间

2021年12月7日 lzxz1234 Leave a comment

背景 一般单元测试时总会有些代码会严重依赖系统当前时间,这种情况下的测试代码写起来可能就比较费劲,此处分享一种基于 ByteBuddy 的覆盖 System.currentTimeMillis 的解决方案。 添加依赖 ByteBuddy 是啥以及作用

阅读全文

JSR269 编译期处理常用操作

2019年7月18日 lzxz1234 Leave a comment

基础变量 后面有些凭空出现的变量可以从这找类型和获取方式: 添加导入包 后面无论加接口还是加注解,都需要先导包: 类添加接口声明 类添加继承序列化接口等操作 类添加注解 类声明的前面添加 @Service @Compoent

阅读全文

从头开始一个 JSR269 工程

2019年7月17日 lzxz1234 Leave a comment

修改 pom.xml 添加依赖 sun.tools: 处理资源文件,跳过执行自定义 processor : 新建一个编译时注解 这个注解就是对外的注解,后续引用该包的源码上带该注解的都会被处理: 新建处理类 编译时的执行类,可以在这里

阅读全文

关于 MetaSpace 及 FastJSON 导致的 OOM

2018年6月25日 lzxz1234 2 comments

在 JDK8 之前,虚拟机内存主要分为堆和非堆两部分,堆中划分新生代老生代,非堆中包含所有非对象信息和运行时信息,其中有一块叫 PermGen,用以保存字节码等类信息。在 JDK8 中取消了这块内存,并添加了 MetaSpace 替代所有功能。

阅读全文

基于 ByteBuddy 运行时动态修改字节码

2018年4月6日 lzxz1234 Leave a comment

简介 Byte Buddy 是一个字节码生成与操作库。它无需编译器,能够在Java程序运行时创建与修改 class 文件。 目标 已有类文件: 目标是将所有 Log 类中对 log 方法的调用全转到 log4j 上。 准备 修改 pom.xml 添加依赖

阅读全文

JVM 类加载器应用之多版本库支持

2018年3月24日 lzxz1234 Leave a comment

问题 开发过程中,咱们经常需要使用不同的库版本,而这些版本又不是向后兼容的,或者出于某种原因需要支持同一库的多个版本。 在这种情况下,默认的类加载器已经是不支持了,因为 loadClass 方法只加载一次特定的类

阅读全文

SNI 兼容性导致 HTTPS 访问异常

2018年2月3日 lzxz1234 Leave a comment

直接贴日志吧,发现有台机器访问 https 就会有以下异常: 提示域名证书不匹配,其实这个是 SIN 导致的,先大体说一下 SNI 是什么。 随着 IPv4 地址的短缺,为了让多个域名复用一个 IP 地址,在 HTTP 服务器上引入了

阅读全文

关于 java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

2017年9月10日 lzxz1234 Leave a comment

Java SE5扩展了反射机制的API,Class 中出现了 getAnnotation(Class<a> annotationClass) 方法,该方法可以帮助程序员快速的构造自定义注解处理器。文档中对该方法的注释为: 返回改程序元素上存在的、指定类型

阅读全文

近期文章

  • Spec 之于代码,如面向对象之于汇编
  • 飞牛挂载 iSCSI 远程磁盘扩容
  • 一分钟解决多行日志截取问题
  • 记一下 oh-my-posh 相关设置
  • 关于 AI 对程序员影响的思考

归档

  • 2026 年 10 月
  • 2026 年 8 月
  • 2026 年 6 月
  • 2026 年 2 月
  • 2026 年 1 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 9 月
  • 2025 年 8 月
  • 2025 年 7 月
  • 2025 年 6 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2023 年 2 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2021 年 12 月
  • 2021 年 10 月
  • 2021 年 1 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2020 年 1 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2019 年 1 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2016 年 10 月
  • 2015 年 3 月
  • 2014 年 12 月
  • 2014 年 11 月
  • 2014 年 7 月

标签云

AI Base58 BlockChain ByteBuddy CDN ClassLoader docker Email Encode ESXI Git Go GoLang GoProxy HTTPS Hyper-V IDE IIS iKuai Intellij Java JavaScript JDK JSR269 linux LLM mysql Nginx ngrok ntfs OpenWrt PhantomJS Php proxy pyspider Python QiNiu shell SSL TokenAnalyzer UTF8 windows wordpress WSL XiaoMi

其他操作

  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org
WordPress Theme: Treville by ThemeZee.
CopyRight © 2017-2026 版权所有 | 京ICP备17040779号 | 京公网安备11010802048467号 | 隐私协议