Java字节码增强库ByteBuddy java-demo

Java字节码增强库ByteBuddy

1.什么是ByteBuddy ? ByteBuddy 是一个强大的 Java 字节码操作库,主要应用场景包括以下几个方面: 动态代理和 AOP(面向切面编程): ByteBuddy 可以用来创建动态代理,替代 Java 自带的 java.lang.reflect.Proxy,并且支持非接口类的代理。 常用于 AOP 框架中,例如在方法执行前后插入逻辑,实现日志记录、事务管理、...
阅读全文
Java SPI 快速入门Demo java-demo

Java SPI 快速入门Demo

1.什么是Java SPI ? SPI全称Service Provider Interface,在Java中还是一个比较重要的概念,是Java提供的一套用来被第三方实现或者扩展的API,或者换句话说,SPI是一种服务发现机制。 SPI 将服务接口和具体的服务实现分离开来,将服务调用方和服务实现者解耦,能够提升程序的扩展性、可维护性。修改或者替换服务实现并不需要修改调用方。 很多框架都...
阅读全文
如何优雅的处理NPE问题? java-demo

如何优雅的处理NPE问题?

1.什么是NPE? NPE,即NullPointerException,是开发中最常见的问题之一,有必要知道如何正确地处理NPE。 对于 Java 开发者来说,null 是一个令人头疼的类型,一不小心就会发生 NPE (空指针) 问题。也是 Java 语言为人诟病的一个重要原因之一。在我们消除可恶的 NPE 问题之前我们要回顾一下 Java 中 null 的概念。 2.有6种情况下会出现...
阅读全文
java使用ByteBuffer记录文件大小并进行多文件合并和拆分 java-demo

java使用ByteBuffer记录文件大小并进行多文件合并和拆分

1.背景 因为验证证书的需要,需要把证书文件和公钥给到客户,考虑到多个文件交互的不便性,所以决定将2个文件合并成一个文件交互给客户。刚开始采用字符串拼接2个文件内容,但是由于是加密文件,采用字符串形式合并后,拆分后文件不可用,最后采用基于二进制流拆分和合并文件,效果不错! 2.代码工程 实验目的  对文件进行二进制流合并和拆分 合并代码 ByteBuffer.allocate(4).p...
阅读全文
利用反射实现动态代理 java-demo

利用反射实现动态代理

1.什么是反射? Java 反射(Reflection)允许程序在运行时动态获取类的信息、访问类的成员和方法、创建类的实例等。尽管反射的性能不如直接调用高,但其灵活性使得反射在许多场景中非常有用。 2.反射主要应用场景 1. 框架设计与实现 许多 Java 框架利用反射来实现高度的灵活性和动态功能,例如: Spring:Spring 框架使用反射来实现依赖注入、AOP(面向切面编程...
阅读全文
利用ClasserLoader来实现jar包加载并调用里面的方法 java-demo

利用ClasserLoader来实现jar包加载并调用里面的方法

1.ClasserLoader介绍? classloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。了解java的类加载机制,可以快速解决运行时的各种加载问题并快速定位其背后的本质原因,也是解决疑难杂症的利器。因此学好类加载原理也至关重要。 内置类加载器...
阅读全文
Loading...