秋招后端开发面试题 - 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

十二、算法

十三、项目

相关推荐
nanxun8861 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103514 小时前
Day01 | Java 基础(Java SE)
java
行者全栈架构师5 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师10 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_010 小时前
mac(m5)平台编译openjdk
java
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程