秋招后端开发面试题 - JVM类加载机制


目录


JVM类加载机制

前言

已经找到工作了,分享秋招时的笔记。祝大家都能顺利找到自己心仪的工作。


面试题

能说一下类的生命周期吗?

  • 类的生命周期分为七个阶段:加载、验证、准备、解析、初始化、使用和卸载
  • 其中验证、准备、解析三个部分统称为连接

类加载的过程知道吗?

  • 获取类的二进制字节流
  • 结构化静态存储结构
  • 在内存中生成 Class 对象

类加载器有哪些?

  • 启动类加载器:加载 Java 核心类库
  • 扩展类加载器:加载 Java 的扩展库
  • 系统类加载器:根据 Java 应用的类路径来加载类
  • 自定类加载器:用户通过继承 ClassLoader 类的方式自定义类加载器

什么是双亲委派机制?

  • 类加载器收到类加载的请求的时候,不会自己尝试加载,而是将请求委托给父类加载器完成
  • 每层的类加载器都向上委托,直到加载请求传送到最顶层的启动类加载器
  • 只有父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己完成加载

为什么要用双亲委派机制?

  • 避免类重复加载,保证应用程序的稳定

如何破坏双亲委派机制?

  • 重写 loadClass() 方法

如何判断一个类是无用的类?

  • 该类的所有实例都已经被回收
  • 加载该类的 ClassLoader 已经被回收
  • 该类对应的 java.lang.Class 对象没有在任何地方被引用

秋招后端开发面试题系列目录

一、Java

1.1 Java基础上

1.2 Java基础下

1.3 Java集合

1.4 JavaIO

1.5 Java多线程上

1.6Java多线程下

二、JVM

2.1 JVM底层原理

2.2 垃圾回收器

2.3 垃圾回收算法

2.4 类加载机制

2.5 运行时数据区

三、MySQL

3.1 MySQL基础

3.2 事务

3.3 索引

3.4 锁机制

3.5 MVCC

四、Redis

4.1 Redis基础

4.2 缓存原理

五、中间件

5.1 RabbitMQ

六、Spring开源框架

6.1 Spring

6.2 Spring MVC

6.3 Spring Boot

6.4 MyBatis

七、操作系统

八、计算机网络

九、设计模式

十、微服务架构

十一、Spring Cloud分布式

11.1 分布式基础

11.2 Spring Cloud

11.3 GateWay

11.4 Nacos

11.5 OpenFeign

11.6 Ribbon

十二、算法

十三、项目

相关推荐
NE_STOP1 小时前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室6 小时前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风8 小时前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme8 小时前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
Be_Better8 小时前
学会与虚拟机对话---ASM
java
开源之眼10 小时前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
Maori31611 小时前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java
用户9083246027312 小时前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
小王和八蛋12 小时前
DecimalFormat 与 BigDecimal
java·后端
beata12 小时前
Java基础-16:Java内置锁的四种状态及其转换机制详解-从无锁到重量级锁的进化与优化指南
java·后端