首页 > 编程 > Java > 正文

java的编译机制

2019-11-06 07:12:02
字体:
来源:转载
供稿:网友

在csdn上搜索了一下但是还没有相关知识,不能说没有或者是太高深我处于新手阶段还未能看懂,所以给大家讲解一下我所认知的java类的编译原理。当然不正之处还望大家指点。

1,思考我们在运行一个java程序的时候,虚拟机怎么会知道我们的main方法哪一个java类当中呢?不错,计算机最强大的就是枚举,计算机会一个一个地去寻找。

在这个过程我们称作Cod segmet(内存预先加载)

2,然乎我们再想,当JDK找到main方法的时候粗储存在那个内存当中?没错是栈内存当中,当JDK找到main主方法的时候就会在栈内存里面为main方法开辟一块区域(内存),然后在这块内存中一次加载main方法中的语句,当遇到int a=10;的时候就会在栈内存里main区域面开辟一块内存,由于是int类型所以是四个字节的大小,当遇到对象的实例化的时候:dog d=new dog();的时候,JDK就会在堆内存中开辟一块空间去储存该实例对象的全部属性(静态属性和方法),仅仅留一个引用在在栈内存中(d.name;d.age;等);当遇到方法的时候也会在栈内存中main区域外开辟一块内存,然后再去加载这个方法,如果方法中需要用到属性就从栈内存中的main方法中去寻找,如果寻找不到就回去堆内存中去寻找; 3,图示这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表