码迷,mamicode.com
首页 > 其他好文 > 详细

JVM讲解

时间:2019-08-11 00:31:48      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:局部变量   静态   mda   编译   ike   垃圾回收   生成   dash   字符串常量   

JVM

  概述:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

       引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码

                (字节码),就可以在多种平台上不加修改地运行。————摘自百度百科

 

  Java虚拟机将.java文件编译成.class文件,然后使用类加载器将类加载到内存当中。由于cpu不能够直接解释.class,因此虚拟机需要将class文件编译成本地代码,让cpu能够直接运行和处理的。

 

JVM结构图如下:

  技术图片

  类加载系统:classLoader 从文件系统加载class信息,加载的类信息保存在方法去的内存空间,方法去可能还会存放运行常量的信息,包括字符串常量和 数字常量
  方法区:存放变量,方法和静态变量
  java堆:在虚拟机启动时就启动了,java程序主要使用堆,存放对象信息
  直接内存:在java堆外,频繁
  垃圾回收机制:对以上三个可进行回收。隐式的释放内存
  java栈:每一个java虚拟机线程都有一个私有的java栈,一个线程的java栈在下称创建时被创建,java栈中保存着帧信息,保存局部变量,方法参数,同时和java方法的调用和返回值相关
  本地方法栈:本地方法的调用
  PC寄存器:每一个线程私有的空间

 

  JVM堆结构:
  分代策略:新生代(回收效率高)、老年代(低)和永久代(更低) 区域划分
  为了提高对象内存分配和垃圾回收的效率 碎片
  hosspot的概念

       新生代:eden(70%-95%被回收) survior survior 超过十五次没被回收会进入from survior区

拓展:并不是太详细,以后会慢慢补全的

  JVM垃圾回收算法及收集器
    引用计数法: +1 -1问题 对象引用计数器
    复制算法:
    标记清除法:碎片
    标记整理算法:解决碎片问题,有序排序

      次收集器
      全收集器

      很多公司都有自己的虚拟机

 

JVM讲解

标签:局部变量   静态   mda   编译   ike   垃圾回收   生成   dash   字符串常量   

原文地址:https://www.cnblogs.com/l-x-x-y-d-j/p/11333411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!