Java Jvm、Android Dalvik和Android Art(一)——Android之路

这是第一篇博客,从此踏入程序员的“不归路”-什么是JVMJVM 是 Java 的核心和基础,在 Java 编译器和 os 平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行 Java 的字节码程序。简单的说,JVM 是java程序运行的平台。java编译执行的流程的三个步骤及其功能:java源码编译机制 》》将java源码编译成JVM可
摘要由CSDN通过智能技术生成

这是第一篇博客,从此踏入程序员的“不归路”-

什么是JVM

JVM 是 Java 的核心和基础,在 Java 编译器和 os 平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行 Java 的字节码程序。

简单的说,JVM 是java程序运行的平台。

java编译执行的流程的三个步骤及其功能:
  • java源码编译机制
    》》将java源码编译成JVM可以理解的字节码
  • 类加载机制
    》》类加载器加载其实就是根据编译后的Class文件,将java字节码载入JVM内存,并完成对运行数据处于的初始化工作,供执行引擎执行。查询是否已加载是自底向上的,类的加载过程是自顶向下的。
  • 类执行机制
    》》将载入JVM内存的字节码转化为机器可以识别的机器码,这个过程可以由解释器来执行,也可以有即时编译器来执行。

类加载机制(内存相关)

想要知道类加载做了什么,需要了解java内存的分配。

java内存区域及内存溢出
内存区域

Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区、运行常量池。前面3各区域(PC寄存器、Java栈、本地方法栈)是每个线程独自拥有的,后三者则是整个JVM实例中的所有线程共有的。

这里写图片描述这里写图片描述

》PC计数器:
每个线程都拥有一个,线程启动时创建,这个计数器存放当前正在被执行的字节码指令(JVM指令)的地址。
》JVM栈:
JVM栈也是每个线程单独拥有&#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值