12.1.StringBuffer和StringBuilder的底层数据结构
String在jdk1.8和StringBuilder以及StringBuffer都是以char[]实现,String在jdk1.9后是使用byte数组实现。
12.2 Bean如何在IOC中创建
- 加载xml文件
- 扫描注解
- 配置类中使用@Bean注解
- 使用BeanFactory的静态或实例方法
12.3 打破类加载的方法
- 继承ClassLoader类重写loadClass方法:可以选择不委托给父类加载器,而是直接尝试自己加载类,或者改变委派的逻辑顺序。
- 重写findClass()方法(推荐):loadClass(保留了双亲委派),而findClass实现自己的类查找逻辑。
- 使用线程上下文类加载器:涉及插件或服务提供者框架时,会使用线程上下文类加载器来加载类,这允许类加载的请求绕过默认的双亲委派规则,直接由特定的类加载器处理。
- 利用JNI:直接在本地代码层面加载类,绕过Java类加载机制。
- 自定义类加载层级