当前位置: 首页 > article >正文

面试基本内容

1.类加载器

类加载器加载过程:

加载:(将字节码文件加载到运行时数据区的方法区中/元空间)

链接:验证:检查字节码文件是否合法—>准备:静态类变量赋值为默认值,不会实例变量分配初始化—>解析:将常量池引用,转化为直接引用)

初始化:(执行类构造器方法clinit,自动收集类中类变量的赋值动作和静态代码块中的语句合并而来)

要看某个类的继承关系,可以选择对应的类,点击F4,即可看到他们之间的继承关系

2635f7235618498a872998e259509e40.png

加载器类型:

引导类加载器(bootstrapclassloader引用类加载器)和自定义类加载器(继承classloader,Extclassloader扩展类加载器,appclassloader系统类加载器等)这些类加载器是包含关系。

f49a6a98128540b2ae7a98505ee074c8.png

6064feeb4df045b583d80829a1edcb81.png

双亲委派机制:

a01db99997ef4d078b9817f6a8044a21.png

利:避免重复加载,防止核心类库被修改(沙箱安全机制)

2.运行时数据区

程序计数器:

串行:

并行:

并发:

Java虚拟机栈:

对于虚拟机栈常见的异常:

OutOfMemoryError(OOM):线程太多导致

StackOverflowEorror:调用方法太多导致

设置虚拟机栈大小:

Oracle | Cloud Applications and Cloud Platformicon-default.png?t=N7T8https://www.oracle.com/

局部变量表:

查看字节码插件:

操作数栈(底层数组):

动态链接:

动态链接的作用就是为了将这些符号引用转换为调用方法的直接引用。


http://www.kler.cn/a/287598.html

相关文章:

  • Tomcat启动过程中cmd窗口(控制台)中文乱码的问题
  • 抽象java入门1.5.3.1——类的进阶
  • Docker:查看镜像里的文件
  • 哈希表学习分享
  • Shell中的函数
  • SpringBoot+React养老院管理系统 附带详细运行指导视频
  • 【GD32】RT-Thread实时操作系统移植(GD32F470ZGT6)
  • 中介者模式详解
  • Pytorch实现多层LSTM模型,并增加emdedding、Dropout、权重共享等优化
  • Python 爬虫爬取京东商品信息
  • 会赢的!(牛客)
  • 买电脑如何选择显卡?
  • 10、Flink 动态表之更新和追加查询详解
  • 【React】Redux-toolkit 处理异步操作
  • 网络是怎样连接的
  • 数美Android SDK
  • JavaWeb笔记整理11——Nginx反向代理Tomcat
  • K8S ReplicaSet
  • 安装office过程中遇到的一系列问题及解放方案(Windows)
  • 深度学习100问37:什么是Gated RNN 框架
  • 一份高质量的测试用例如何养成?
  • 国内外大模型汇总(包括科大星火、文心一言、通义千问、智普清言、华为大模型)
  • 【算法】LRU置换算法
  • 【Tools】什么是MapReduce
  • 【软考】多媒体知识
  • 异步并发处理利器:在 Jupyter Notebook 中玩转 asyncio