Java虚拟机中的多线程是通过线程轮流切换并并分配处理器的时间来实现的,对于任意一个时刻,一个处理器(对于多核处理器而言是一个核)只会执行一条线程中的指令,因此为了线程切换后都能够恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器
Java虚拟机栈描述的是java方法的执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量表,操作数栈,方法出口等,一个方法从调用到执行完成就对应着栈帧在虚拟机中入栈到出栈的过程。为线程私有,生命周期与线程相同。
本地方法栈和虚拟机栈的作用非常相似,但是其存在目的是为了本地方法而存在的,简单的说Java的Naive方法就是方法的实现是由非Java语言在外面实现的,是由Java调用非Java方法的一个接口。
Java堆是被所有线程所共享的一块区域,其目的就是为了存储对象实例,所有的对象实例都存放在堆中,从垃圾回收的角度,由于现在的收集器基本都采用的是分代回收的算法,所以Java堆还可以被细分为新生代和老生代。Java堆中可以存在在物理上不连续的内存空间,只要逻辑上连续即可。
Java堆中的内存分配假设Java堆中的内存是绝对完整的,被划分为已使用和未使用两个区域,中间通过位置指针记录位置,这样的话给新生成的对象划分内存空间,那么只需要将指针向未划分的区域移动,这称作是指针碰撞。那如果未使用的区域不是连续的,则需要一个列表来记录并维护能够使用的区域。
Java中的垃圾清除算法

  • 标记-清除算法
    首先标记出所有要回收的对象,之后在统一清除,该算法的缺点在于效率不高,同时清除之后会产生大量的内存不连续区域,会提前触发第二次的清除。

  • 复制算法
    可将内存按容量划分为相等的两块,每次只是用一块,当一块用完了将依旧存活着的对象复制到另一块中,将使用的这一块清理掉。缺点是每次只能使用一半的内存。

  • 标记整理算法
    和标记清除算法相似但是区别是后续步骤并非将可回收对象进行清除,而是让存活对象向一端移动。
  • 分代收集算法
    根据对象的存活周期将内存分为新生代和老年代,在新生代中对象大量死去少量存活,采用复制算法,老年代中存活率高,采用标记整理算法。

Java虚拟机面试问题相关推荐

  1. 常用的java虚拟机_带你了解 JAVA虚拟机 面试必备

    Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途.创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有 些区域则是依赖 ...

  2. 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

  3. java上机面试题 039_深入 Java 虚拟机之面试总结篇

    在学习 JVM 相关知识,怎么让自己有动力看下去,且有思考性呢?笔者认为,开头用一些常用的面试题,来引入读者的兴趣比较好,这样才会有看下去的动力.所以,该篇文章会以面试+总结的方式,希望读者能先思考写 ...

  4. 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_JVM虚拟机面试指南:年薪30W以上高薪岗位需求的JVM,你必须要懂!...

    JVM的重要性 很多人对于为什么要学JVM这个问题,他们的答案都是:因为面试.无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪 ...

  5. 如何在面试时搞定 Java 虚拟机?

    作者 | 倪升武 责编 | 胡巍巍 笔者最近抽空看了一点<深入理解Java虚拟机>,本篇文章主要来总结一下Java虚拟机内存的各个区域,以及这些区域的作用.服务对象以及其中可能产生的问题, ...

  6. JVM学习教程,带你轻松掌握Java虚拟机,吊打面试官

    前言: Java 虚拟机日益成为互联网大厂面试的重要内容,对于 Java 开发者而言,只有在了解 Java 背后的原理后,才能写出更高质量的代码,才能在错综复杂的 bug 中快速定位出问题并找到解决方 ...

  7. Java 虚拟机:Java 内存区域及对象,java 反射面试

    1.计算机存储单位 从小到大依次为位 Bit.字节 Byte.千字节 KB.兆 M.千兆 GB.TB,相邻单位之间都是 1024 倍,1024 为 2 的 10 次方,即: 1Byte = 8bit ...

  8. 【2022最新Java面试宝典】—— Java虚拟机(JVM)面试题(51道含答案)

    目录 一.Java内存模型 1. 我们开发人员编写的Java代码是怎么让电脑认识的 2. 为什么说java是跨平台语言 3. Jdk和Jre和JVM的区别 4. 说一下 JVM由那些部分组成,运行流程 ...

  9. 面试官,不要再问我“Java虚拟机类加载机制”了

    关于Java虚拟机类加载机制往往有两方面的面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程.其实这两类题本质上都是考察面试者对Java虚拟机类加载机制的了解. 面试题试水 现在有这样一道判断程 ...

最新文章

  1. ITK:处理3D图像的2D切片
  2. 基于 HanLP 的 ES 中文分词插件
  3. 中国土壤厚度空间分布数据
  4. 计算机算法基础总结(借鉴、整理)
  5. 正确的配置Android开发环境-让你的C盘不在爆红
  6. 移动端UI设计尺寸规范以及iPhone尺寸大小
  7. IT软件技术人员的职位路线(从程序员到技术总监) - 部门管理经验谈
  8. 智能指针的标准之争:Boost vs. Loki(转载)
  9. LeetCode.M11.盛最多水的容器
  10. 解决win10系统不能打开.chm类型的文件
  11. 漫画影视化背后,IP成漫改的通关秘籍?
  12. 鸿蒙蕴含的哲理,蕴含哲理的唯美句子,喜欢的就收藏吧!
  13. 【MATLAB教程案例16】基于GWO灰狼优化算法的函数极值计算matlab仿真及其他应用
  14. 按键精灵提交表单发起post请求
  15. vue开发web端实现列表左右联动效果
  16. 最新版java(JDK-14)下载及安装
  17. MinGW 完整版本(无需安装)
  18. 我的电子相册网页HTML案例
  19. 【我遇到了更好的你】
  20. 美颜sdk是什么?美颜技术详解

热门文章

  1. ES6语法总结(21)--Generator函数的异步应用
  2. 【红帽rhcsa基础命令】
  3. 巴西柔术第六课:侧向压制上位进攻技术
  4. html删除图片效果,html+css实现图片右上角加删除叉、图片删除按钮
  5. breezy,dapper,edgy,feisty的含义
  6. HTML设置页面动画效果有几种,前端制作动画的几种方式(css3,js)
  7. 比较好的刷题网站推荐
  8. 如何将音乐导入iphone手机,怎么将歌曲导入到iphone
  9. HDF5数据库和mysql数据库_hdf5文件格式使用攻略
  10. 没什么经验的UE/UI设计师如何应对面试