
源码
文章平均质量分 93
Throwable文摘
这个作者很懒,什么都没留下…
展开
-
通过源码浅析Java中的资源加载
最近在做一个基础组件项目刚好需要用到JDK中的资源加载,这里说到的资源包括类文件和其他静态资源,刚好需要重新补充一下类加载器和资源加载的相关知识,整理成一篇文章。这一节主要分析类加载器和双亲委派模型。虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到了Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类,而实现这个动作的代码模块称为"类加载器(ClassLoader)"。类加载器虽然只用于实现类加载的功能,但是它在Java程序中起到的作用不局限于类加原创 2022-06-14 20:37:02 · 274 阅读 · 0 评论 -
浅析JDK中ServiceLoader的源码
紧接着上一篇《通过源码浅析JDK中的资源加载》,ServiceLoader是SPI(Service Provider Interface)中的服务类加载的核心类,也就是,这篇文章先介绍ServiceLoader的使用方式,再分析它的源码。这里先列举一个经典的例子,MySQL的Java驱动就是通过ServiceLoader加载的,先引入的依赖:查看这个依赖的源码包下的META-INF目录,可见:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BuV1i3Em-165521023原创 2022-06-14 20:35:51 · 426 阅读 · 0 评论 -
JAVA中神奇的双刃剑--Unsafe
参考资料:在Oracle的Jdk8无法获取到sun.misc包的源码,想看此包的源码可以直接下载openjdk,包的路径是:当然,不同的openjdk版本的根目录(这里是openjdk-8u40-src-b25-10_feb_2015)不一定相同。sun.misc包含了低级(native硬件级别的原子操作)、不安全的操作集合。Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。Unsafe类提供了硬件级别的原子操作,提供了一些绕开JVM的更底层功能,原创 2022-06-14 20:32:50 · 881 阅读 · 1 评论 -
13万字详细分析JDK中Stream的实现原理
前提Stream是JDK1.8中首次引入的,距今已经过去了接近8年时间(JDK1.8正式版是2013年底发布的)。Stream的引入一方面极大地简化了某些开发场景,另一方面也可能降低了编码...原创 2021-10-06 13:14:36 · 1691 阅读 · 4 评论