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方法中的局部变量表之类的信息。
填写下面表单即可预约申请免费试听!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
预约申请免费听课
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机: