JVM虚拟机的大概了解(新人面试必看!)
一. 引言,环境安装测试中的代码解析

二. Java虚拟机的基本结构

- 类加载器:
- 读取Class文件,并将其转换成虚拟机可以使用的对象,将类的信息存到方法区中
- 方法区:
- 存储加载器传递的类的信息
- 存放常量池信息,包括字符串和数字常量
- java堆
- 堆的区域是线程共享的
- 堆得内存大小由jvm决定
- 存储创建的对象信息
- java栈
- 每一个线程都有一个栈
- 线程创建的时候创建
- 保存帧空间
- 举例,递归中,方法每次调用自己的时候,要进行压栈操作么,当一个新的方法压栈的时候原来的方法中还有其他地方没有运行完,还有一些数据需要保存, 这个保存点就叫做栈帧
方法保存那些没运行的地方或者数据的节点叫做栈帧;
- 保存局部变量,对象地址,方法,方法参数,还有方法的调用信息
- 直接内存
- 是物理内存的映射,大小不由虚拟机分配,理论上大小无限,实际按照物理内存的大小
- 允许java的NIO模块直接调用
- 垃圾回收系统
- 作用在java堆,java栈,方法区中
- 自动化,不需要手动,会自动检测,标识,寻找无用的对象并进行回收,全程静默
- 本地方法栈
- 存放本地方法
- 本地方法指的是当前操作系统的api,虚拟机是需要本地系统的api才能够运行的
所以存在很多种不同的虚拟机;
- pc寄存器
- 主要用来分辨某一个线程正在操作的方法类型,并且被虚拟机选择调用虚拟机自己的方法
- 如果当前线程正在执行的是本地操作系统的方法,会返回undefine
- 如果在操作虚拟机方法,则返回该方法
- 执行引擎
- 执行引擎负责执行虚拟机的字节码,都采用 JIT (Just In Time) 即时编译,编译成机器码后再执行
三.总结
附件列表
https://www.cnblogs.com/lyuweigh/p/36e52fac9a5656dca084eedb06b09129.html
JVM虚拟机的大概了解(新人面试必看!)的更多相关文章
- 面试必看!靠着这份字节和腾讯的面经,我成功拿下了offer!
准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算法题,而这一块平时练习的比较少,校招时刷的题也忘记了很多.因此系统复习的 ...
- JAVA多线程面试必看(转载)
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- 百度搜索 “Java面试题” 前200页(面试必看)
前言 本文中的题目来源于网上的一篇文章<百度搜索 "Java面试题" 前200页>,但该文章里面只有题目,没有答案.因此,我整理了一些答案发布于本文.本文整理答案的原则 ...
- 【Python】【面试必看】Python笔试题
前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出 2 个笔试题,这些题目一般不难,主要考察基本功.要是给你一台电脑,在编辑器里面边写边调试,没 ...
- linux c++ 服务器端开发面试必看书籍
摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 githu ...
- 面试必看!凭借着这份 MySQL 高频面试题,我拿到了京东,字节的offer!
前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面 ...
- iOS面试必看
转载:http://www.jianshu.com/p/5d2163640e26 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形 ...
- iOS面试必看,最全梳理
序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态 ...
- iOS,面试必看,最全梳理
序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态 ...
随机推荐
- 基于ajax和Form实现的注册
注册 urls.py from django.contrib import admin from django.urls import path, re_path from app01 import ...
- 如何让你的手机U盘集PE工具、系统安装、无线破解等众多功能于一身
不久前,手里的U盘坏了,于是乎,又在网上淘了一个Type-C U盘,刚好手机电脑都可以用. 那么现在U有了,我们要做什么呢? 第一:让U盘插在手机上时,可以供手机读写,实现手机存储扩容,随插随用,简单 ...
- zabbix haproxy 监控
摘自: http://www.tuicool.com/articles/JrYNNrm 写的非常好,步步紧逼,环环相扣.直到成功! 文章首发站点:OpensGalaxy 这是一个HAProxy的zab ...
- Linux学习之路(一)命令基本格式
据统计Linxu里面能够识别的命令超过3000个,而我们常用的Linux基本命令在60个左右.常用命令是我们必须掌握的命令,需要我们多练习才能记住,最起码要敲3遍以上. 简单的把常用命令分为以下几大类 ...
- SFTP 文件上传下载引用代码
http://sha1064616837.iteye.com/blog/2036996 http://www.cnblogs.com/itmanxgl/p/fe5d33512609fe540eb08a ...
- eclipse如何在不联网的情况下引入dtd约束文件
1. 获取dtd文件,解压 F:\Java配置文件\Mybatis\mybatis-3.3.0\mybatis-3.3.0.jar\org\apache\ibatis\builder\xml\ 路径下 ...
- 网络编程学习笔记-linux常用的网络命令
网络参数设置命令 所有时刻如果你想要做好自己的网络参数设置,包括IP参数.路由参数和无线网络等,就得要了解下面这些相关的命令才行.其中Route及ip这两条命令是比较重要的.当然,比较早期的用法,我们 ...
- <opengl>使用glu绘制二次曲面
绘制二次曲面通常要以下四步: 1.首先我们创建一个二次方程状态对象 GLUquadricObj *m_pObj; //保存绘图模式.法线模式.法线朝向.纹理等信息 //创建二次方程状态对象 ...
- 一:AMQP协议标准简单介绍
一:AMQP协议?--->AMQP 是 Advanced Message Queuing Protocol,即高级消息队列协议.和前面罗列的技术不同,AMQP 是一个标准化的消息中间件协议--- ...
- noip2011普及组:统计单词
题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位 置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在 ...