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

小林coding-9道Java虚拟机面试题

1.JVM的内存模型介绍一下? JVM内存模型里的堆和栈有什么区别?栈中存的到底是指针还是对象?

2. 堆分为哪几部分呢?如果有个大对象一般是在哪个区域?

为什么需要两块Survivor区域?按照你的思路往下走,eden区,S1,第一次的回收的时候,标记复制,把eden区域的存活对象复制到S1,那么现在开始第二次垃圾回收,把eden的存活对象复制到S1。那么问题来了,其实这个时候S1的区域其实有些对象已经死了,也需要回收,怎么办?所以这个时候权衡一下,我们需要两块区,S1,S2。第二次的时候,针对S1和eden区域进行标记复制,复制到S2区域。后面第三次 怎么做,我就不写了。
 

3.程序计数器的作用,为什么是私有的?方法区中的方法的执行过程?方法区中还有哪些东西?

4.String保存在哪里呢?String s = new String(“abc”)执行过程中分别对应哪些内存区域?

5.引用类型有哪些?有什么区别?弱引用了解吗?举例说明在哪里可以用?

6.内存泄漏和内存溢出的理解?jvm 内存结构有哪几种内存溢出的情况?有具体的内存泄漏和内存溢出的例子么请举例及解决方案?

7.创建对象的过程?对象的生命周期?类加载器有哪些?双亲委派模型的作用?讲一下类加载过程?讲一下类的加载和双亲委派原则

8.什么是Java里的垃圾回收?如何触发垃圾回收?判断垃圾的方法有哪些?垃圾回收算法是什么,是为了解决了什么问题?垃圾回收算法有哪些?

9.垃圾回收器有哪些?标记清除算法的缺点是什么?垃圾回收算法哪些阶段会stop the world?minorGC、majorGC、fullGC的区别,什么场景触发full GC?垃圾回收器 CMS 和 G1的区别?什么情况下使用CMS,什么情况使用G1?G1回收器的特色是什么?GC只会对堆进行GC吗?


http://www.mrgr.cn/news/96240.html

相关文章:

  • 4.6js面向对象
  • 【C++游戏引擎开发】《线性代数》(2):矩阵加减法与SIMD集成
  • 有关pip与conda的介绍
  • Centos7 安装 Nginx
  • Linux的例行性工作
  • 关于跨域问题(本地前端访问服务器端接口跨域出错)
  • MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案
  • 关于服务器只能访问localhost:8111地址,局域网不能访问的问题
  • Redis:概念与常用命令
  • Django 项目打包exe本地运行
  • JAVA接口调用限速器
  • 嵌入式学习第二十八天--顺序栈
  • SDL —— 将sdl渲染画面嵌入Qt窗口显示(附:源码)
  • UE4学习笔记 FPS游戏制作26 UE中的UI
  • ​​解锁 JavaScript DOM:节点操作的核心方法与最佳实践
  • LibVLC —— 《基于Qt的LibVLC专业开发技术》视频教程
  • NodeJs之http模块
  • 基于Netlify + Localtunnel 实现本地项目“无服务器”部署上线
  • vue复习1~45
  • 【每日算法】Day 10-1:深度优先搜索(DFS)算法精讲——排列组合与路径问题的终极解法(C++实现)