一. 引言,环境安装测试中的代码解析

 

 
 
1. HotSpot(TM) 64-bit Server VM(build 25.181-b13,mixed mode),这是多种
    HotSopt是多种虚拟机中的一种,是一个热点探测技术
    Hotspot虚拟机特点: 虚拟机会加载class文件,每次加载文件都会对该class文件进行标记,当标记到达一定的阀值会触发JIT机制
    JIT机制解释:即使编译,对频繁使用的CLass文件进行缓存,直接编译成虚拟机可以使用的文件,并进行缓存
 
 
2.Class文件是一个中间层文件, 虚拟机不能直接执行这个文件,虚拟机会将该文件编译成本地代码,
        HopSpot的两种运行机制:Server和Client, 采用两套机制来初始化自己   
        Client:更多的是基于桌面应用进行的虚拟机优化,B/S结构,客户端是可以并发的,为虚拟机分配的空间相对Servler来说要小很多,主要是为了在客户端环境中减少启动时间而优化;
        Server:分配给虚拟机的的空间比CLient大,优化方式也不同,处理大流量请求的时候效率比较高,在服务器环境中最大程度的提高执行效率
                缺点: 会造成空间浪费,它申请给虚拟机的内存空间比较大
 
 

二. Java虚拟机的基本结构

     
 
  1. 类加载子系统,参考笔记类加载器
 
  • 类加载器:
    • 读取Class文件,并将其转换成虚拟机可以使用的对象,将类的信息存到方法区中
 
 
  • 方法区:
    • 存储加载器传递的类的信息
    • 存放常量池信息,包括字符串和数字常量
 
 
  • java堆
    • 堆的区域是线程共享的
    • 堆得内存大小由jvm决定
    • 存储创建的对象信息
 
 
  • java栈
    • 每一个线程都有一个栈
    • 线程创建的时候创建
    • 保存帧空间
      • 举例,递归中,方法每次调用自己的时候,要进行压栈操作么,
        当一个新的方法压栈的时候原来的方法中还有其他地方没有运行完,
        还有一些数据需要保存, 这个保存点就叫做栈帧
         

        方法保存那些没运行的地方或者数据的节点叫做栈帧;

    • 保存局部变量,对象地址,方法,方法参数,还有方法的调用信息
 
 
  • 直接内存
    • 是物理内存的映射,大小不由虚拟机分配,理论上大小无限,实际按照物理内存的大小
    • 允许java的NIO模块直接调用
 
 
  • 垃圾回收系统
    • 作用在java堆,java栈,方法区中
    • 自动化,不需要手动,会自动检测,标识,寻找无用的对象并进行回收,全程静默
 
 
  • 本地方法栈
    • 存放本地方法
      • 本地方法指的是当前操作系统的api,虚拟机是需要本地系统的api才能够运行的

所以存在很多种不同的虚拟机;

 
  • pc寄存器
    • 主要用来分辨某一个线程正在操作的方法类型,并且被虚拟机选择调用虚拟机自己的方法
      • 如果当前线程正在执行的是本地操作系统的方法,会返回undefine
      • 如果在操作虚拟机方法,则返回该方法
        ps:虚拟机中不可能只存在一条线程,虚拟机中的线程任意状态一定是在执行方法;
 
 
  • 执行引擎
    • 执行引擎负责执行虚拟机的字节码,都采用 JIT (Just In Time) 即时编译,编译成机器码后再执行
 

三.总结

    jvm为每个新创建的线程都分配一个堆栈;
 
 

附件列表

https://www.cnblogs.com/lyuweigh/p/36e52fac9a5656dca084eedb06b09129.html

JVM虚拟机的大概了解(新人面试必看!)的更多相关文章

  1. 面试必看!靠着这份字节和腾讯的面经,我成功拿下了offer!

    准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算法题,而这一块平时练习的比较少,校招时刷的题也忘记了很多.因此系统复习的 ...

  2. JAVA多线程面试必看(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  3. 百度搜索 “Java面试题” 前200页(面试必看)

    前言 本文中的题目来源于网上的一篇文章<百度搜索 "Java面试题" 前200页>,但该文章里面只有题目,没有答案.因此,我整理了一些答案发布于本文.本文整理答案的原则 ...

  4. 【Python】【面试必看】Python笔试题

    前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出 2 个笔试题,这些题目一般不难,主要考察基本功.要是给你一台电脑,在编辑器里面边写边调试,没 ...

  5. linux c++ 服务器端开发面试必看书籍

    摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 githu ...

  6. 面试必看!凭借着这份 MySQL 高频面试题,我拿到了京东,字节的offer!

    前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面 ...

  7. iOS面试必看

    转载:http://www.jianshu.com/p/5d2163640e26 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形 ...

  8. iOS面试必看,最全梳理

    序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态 ...

  9. iOS,面试必看,最全梳理

    序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态 ...

随机推荐

  1. koa-bodyparser返回413状态码的问题

    413 Request Entity Too Large(请求实体太大) 数日前,我用 node.js 写的一个日志服务抛出了这个状态码-- 自己写的服务抛出了一个自己都不认识的状态码,这是最气的!( ...

  2. DOM的构建与优化

    一.构建模块 HTML描述了一个页面的结构.浏览器会将它转换成一种他们能够理解的格式——文档对象模型(DOM),浏览器引擎有一段特殊的代码叫做解析器,将数据从一种格式转换成另外一种格式. 一个HTML ...

  3. Android WiFi系统架构【转】

    本文转载自:http://blog.csdn.net/liuhaomatou/article/details/40398753 在了解WIFI模块的系统架构之前.我心中就有一个疑问,那么Android ...

  4. Spring Boot2.0之web开发

    1.关于静态资源的访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...

  5. BZOJ 1208 [HNOI2004]宠物收养所:Splay(伸展树)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1208 题意: 有一个宠物收养所,在接下来一段时间内会陆续有一些宠物进到店里,或是一些人来领 ...

  6. html5--2.4新的布局元素(3)-section

    html5--2.4新的布局元素(3)-section 学习要点 了解section元素的语义和用法 通过实例理解section元素的用法 article元素和section元素的区别和共同点 art ...

  7. PS 滤镜— —水波效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  8. CDH5.12.1 安装部署

    ###通过http://192.168.50.200:7180/cmf/login 访问CM控制台 4.CDH安装 4.1CDH集群安装向导 1.admin/admin登陆到CM 2.同意licens ...

  9. zabbix告警邮件美化

    为了更好的用户体验,我们需要尽量美化我们的输出内容,尽量做到整齐划一,让人看了会有很舒服的感觉, 这个好像和苹果的产品一样,给人一种美感让人感觉非常享受. 一般我们的zabbix告警邮件就是纯文字,建 ...

  10. css 跳转电脑分辨率

    因为我们经常在项目中要适配各种屏幕,为了方便前端的开发和测试.我们可以直接把电脑的分辨率调整到需要适配的最小的分辨率,其实还有一种更直接粗暴的方法.直接按F12打开控制台,在收拉浏览器就能看到目前的分 ...