java

导航

2020年java常见面试题及答案:第五部分

来源 :中华考试网 2020-09-29

  说说java内存结构

  各内存空间的理解

  ①方法区:当类被加载到jvm时,需要一个内存空间来记录类的信息,如类的全类名,变量名,方法名,访问权限等等。

  ②堆:当一个类通过new 被创建时,需要一个区域来保存类的实例对象,如 Student student = new Student(); 这时候Student的实例对象保存在堆内存中。

  ③虚拟机栈:当运行某个类的方法时,如果方法有局部变量那么就需要一个区域来存放局部变量,这个内存区域叫做虚拟机栈,每个线程都有自己的虚拟机栈。栈的数据机构为LIFO 后进先出。 为什么要设计这样的数据结构呢:当a方法调用b方法时,a先进栈,然后b进栈,b运行完后,继续执行a的方法。

  ④当底层API不是java语言写的时候,就需要调用native方法,native方法的实现根据不同的操作系统会有不同,这也是jvm夸平台的原因,比如最简单的System.out 也是调用的native方法。既然后native方法与java语言本身写的方法不同,这里就需要一个线程对应的内存空间,也就是本地方法栈,来存放native方法中的局部变量表之类的信息。

  填写下面表单即可预约申请免费试听!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

分享到

相关资讯