作为一个程序员,绝大多数时候你都不需要关心一个类是怎么被加载进内存的。这里面 runtime linker 在你的代码还没跑起来之前就已经做了很多复杂的工作。
对于大多类来说,知道这一点就已经相当足够了。但是,有一些类可能需要做一些特殊的准备工作。比如初始化一个全局的表,从 UserDefaults 里面读取配置并缓存起来,又或者做一些其他的准备工作。
ObjC 提供了两种方法来实现这些事情:
2025年08月02日
作为一个程序员,绝大多数时候你都不需要关心一个类是怎么被加载进内存的。这里面 runtime linker 在你的代码还没跑起来之前就已经做了很多复杂的工作。
对于大多类来说,知道这一点就已经相当足够了。但是,有一些类可能需要做一些特殊的准备工作。比如初始化一个全局的表,从 UserDefaults 里面读取配置并缓存起来,又或者做一些其他的准备工作。
ObjC 提供了两种方法来实现这些事情:
2025年08月02日
转载:
https://segmentfault.com/a/1190000023204143
springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题。在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能。
2025年08月02日
一、类的加载与ClassLoader的理解
1、加载
将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.class对象。
2、链接
将Java类的二进制代码合并到JVM的运行状态之中的过程。
2025年08月02日
static是一个很重要的关键字,它可以修饰类的成员(变量和方法)和代码块。
本文一起来看下static的含义和用法。
2025年08月02日
了解了类加载器的双亲委派机制, 也知道了双亲委派机制的原理,接下来就是检验我们学习是否扎实了,来自定义一个类加载器
2025年08月02日
大家想必都有过平时开发springboot 项目的时候稍微改动一点代码,就得重启,就很烦
2025年08月02日
SpringBoot FatJar 的设计,打破了标准 jar 的结构,在 jar 包内携带了其所依赖的 jar 包,通过 jar 中的 main 方法创建自己的类加载器,来识别加载运行其不规范的目录下的代码和依赖。
2025年08月02日
你是否曾好奇,为何Tomcat作为Java Web服务器的佼佼者,偏偏不走寻常路,要自定义一套类加载器机制?这背后,不仅隐藏着解决Java类加载复杂性的智慧,更蕴含着提升应用隔离性、安全性与灵活性的深刻考量。今天,就让我们一同揭开Tomcat类加载器的神秘面纱,看看它是如何成为Web应用部署与运行的幕后英雄!
2025年08月02日
类从加载到内存中开始,到卸载出内存位置,为类的生命周期。
包括加载(loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiazation)、使用(Using)、卸载(Unloading)7个阶段。其中验证、准备、连接统称为连接(linking)。