JAVA的执行过程

Java源代码经Javac命令编译以后,会生成.class的字节码文件。执行了Java命令之后,ClassLoader(类加载器)会将.class的字节码文件加载到内存中存储在方法区中。然后,JVM会调用main方法,顺次的执行代码,将局部变量存储在栈区中;将引用变量的所指向的内容,存储在堆区中,引用变量所指向的内容,用来存储hashCode码。顺次的执行,直到main方法执行完毕,然后再通过类加载器,将.class文件内容在JVM所占用的空间全部卸载。

Java执行过程示意图:

方法区:用来存储代码。将.class的字节码文件加载到内存中,并存储在方法区。静态域(静态块、静态属性、静态方法)也存储在方法区。

栈区:用来存储局部变量、形参、方法的返回值、中间的运算表结果。

           栈的特点:1、先进后出;2、自动弹栈。

堆区:用来存储成员变量(属性)、数据的对象、方法的引用。

          堆的特点:1、由双链表实现;2、用户不能直接访问;3、堆区的数据不能自动回收。

本地方法区:存储链接本地方法的相关代码(加native关键字的代码)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值