page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6252 次

3096 个回答

0 赞同

怎么实现一个自定义的类加载器?需要注意什么?

若要实现自定义类加载器,只需要继承 java.lang.ClassLoader 类,并且重写其 findClass() 方法即可。

回答于 2022-02-10 15:03

0 赞同

怎么打破双亲委派模型?

1. 自己写一个类加载器; 2. 重写 loadClass() 方法 3. 重写 findClass() 方法 这里最主要的是重写 loadClass 方法,因为双亲委派机制的实现都是通过这个方法实现的,先找父加载器进行加载,如果父加载器无法加载再由自己来进行加载,源码里会直接找到根加载器,重写了这个方法以后就能自己定义加载的方式了。

回答于 2022-02-10 14:52

0 赞同

有哪些实际场景是需要打破双亲委派模型的?

JNDI 服务,它的代码由启动类加载器去加载,但 JNDI 的目的就是对资源进行集中管理和查找,它需要调用独立厂商实现并部署在应用程序的 classpath 下的 JNDI 接口提供者(SPI, Service Provider Interface) 的代码,但启动类加载器不可能“认识”之些代码,该怎么办? 为了解决这个困境,Java 设计团队只好引入了一个不太优雅的...

回答于 2022-02-10 14:50

0 赞同

谈谈你对编译期优化和运行期优化的理解?

1、编译期优化: 1. 解析与填充符号表的过程 2. 插入式注解处理器的注解处理过程 3. 分析与字节码生成过程 2、编译优化: 1. 方法内联 2. 公共子表达式消除 3. 数组范围检查消除 4. 逃逸分析

回答于 2022-02-10 14:42

0 赞同

为何 HotSpot 虚拟机要使用解释器与编译器并存的架构?

解释器:程序可以迅速启动和执行,消耗内存小 (类似人工,成本低,到后期效率低); 编译器:随着代码频繁执行会将代码编译成本地机器码 (类似机器,成本高,到后期效率高)。 在整个虚拟机执行架构中,解释器与编译器经常配合工作,两者各有优势:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的...

回答于 2022-02-10 14:37

0 赞同

说下你对 Java 内存模型的理解?

处理器和内存不是同数量级,所以需要在中间建立中间层,也就是高速缓存,这会引出缓存一致性问题。在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(Main Memory),有可能操作同一位置引起各自缓存不一致,这时候需要约定协议在保证一致性。 Java 内存模型(Java Memory Model,JMM):屏蔽掉了各...

回答于 2022-02-10 14:34

0 赞同

内存间的交互操作有哪些?需要满足什么规则?

关于主内存与工作内存之间的具体的交互协议,即:一个变量如何从主内存拷贝到工作内存、如何从工作内存同步主内存之类的实现细节,Java内 存模型中定义一下八种操作来完成: 1. lock(锁定):作用于主内存的变量。它把一个变量标志为一个线程独占的状态; 2. unlock(解锁):作用于主内存的变量,它把处于锁定状态的变量释...

回答于 2022-02-10 14:33

0 赞同

用 Spring 框架的好处是什么?

1. 轻量:Spring 是轻量的,基本的版本大约 2MB。 2. 控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 3. 面向切面的编程(AOP):Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 4. 容器:Spring 包含并管理应用中对象的生命周期和配置。 5. MVC...

回答于 2022-02-10 14:30

0 赞同

谈谈你对 CMS 垃圾收集器的理解?

CMS 是英文 Concurrent Mark-Sweep 的简称,是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。是使用标记清除算法实现的,整个过程分为四步: 1. 初始标记:记录下直接与 root 相连的对象,暂停所有的其他线程,速度很快; 2. 并发标记:同时开启 GC 和用户线程,用一个闭包结构去记录可达对象。但在这个阶段结...

回答于 2022-02-09 14:11

0 赞同

谈谈你对 G1 收集器的理解?

垃圾回收的瓶颈:传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是 Full GC 所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC 暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚...

回答于 2022-02-09 14:10