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

java基础面试题(二)

java后端面试题大全

  • 3.JVM
    • 3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?
    • 3.2 java类的加载流程
    • 3.3 java内存溢出什么时候会发生以及解决方法

3.JVM

3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?


  • 对象实例、String常量池、基本类型常量池、静态变量
  • 方法区
    类信息、类常量池、运行时常量池
  • 虚拟机栈
    临时变量

3.2 java类的加载流程

java文件到最终运行, 需要经过编译和类加载这两个阶段
编译的过程:把.java文件编译成.class文件
类加载的过程:把.class文件加载到jvm的内存中

  1. 加载
    通过类的全限定名获取类的二进制数据, 这可以通过类加载器完成, 类加载器可以从文件系统、网络、ZIP文件等地方获取类文件的二进制数据
    将获取的二进制数据转换为方法区(或元空间)的运行时数据结构, 这个数据结构存储了类的字段、方法、构造方法等信息,同时也包含了类的常量池,即字面量(如字符串、final常量)和符号引用等。
  2. 验证
    确保被加载的类的正确性. 这个阶段主要包括文件格式验证、元数据验证、字节码验证等,以确保类文件的正确性和安全性。
  3. 准备
    为类的静态变量分配内存并设置初始值, 这里的初始值通常是默认值,比如数值类型的默认值是0,引用类型的默认值是null
  4. 解析
    类、接口、字段和方法的符号引用解析为直接引用
  5. 初始化
    类的初始化方法

3.3 java内存溢出什么时候会发生以及解决方法

一、内存溢出的原因
如果内存泄露的空间足够大,就会导致内存溢出

堆内存中一个对象不再使用时,垃圾回收器却无法从内存中删除他们,导致内存泄露。

二、内存泄露的影响

http://www.lryc.cn/news/249520.html

相关文章:

  • php爬虫实现把目标页面变成自己的网站页面
  • [c语言c++]手写你自己的swap交换函数
  • 技术类知识汇总(二)
  • 简单好用!日常写给 ChatGPT 的几个提示词技巧
  • pytorch分布式训练
  • 【PyTorch】(三)模型的创建、参数初始化、保存和加载
  • 高效开发之:判断复杂list中的对象属性是否包含某个值
  • MacOS + Android Studio 通过 USB 数据线真机调试
  • 部署jekins遇到的问题
  • SQLY优化
  • 设计模式——行为型模式(一)
  • Rust语言入门教程(六) - 字符串类型
  • 【MATLAB源码-第92期】基于simulink的QPSK调制解调仿真,采用相干解调对比原始信号和解调信号。
  • 关于C语言控制浮点数输出精度问题
  • 【Linux 静态IP配置】
  • 【Linux 操作系统配置 SFTP】
  • 信贷专员简历模板
  • Python自动化测试面试经典题
  • java+springboot物流管理系统设计与实现wl-ssmj+jsp
  • 概念理论类-k8s :架构篇
  • window10家庭版中文转专业版流程
  • Chrome显示分享按钮
  • GPTS-生成一个动漫图像GPT
  • 在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2
  • SpringMVC文件下载
  • 前端项目打包放到springboot项目时,访问不带index.html
  • Tomcat注册为服务后,如何配置Tomcat内存大小
  • C语言入门实战教程——嵌入式必备教程(2023年版最全最新整理)
  • Chatbot开发三剑客:LLAMA、LangChain和Python
  • 【Spring之AOP底层源码解析】