加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

你真的了解JVM?JVM中有哪些内存区域,都有哪些作用?

发布时间:2019-07-18 04:33:07 所属栏目:空间 来源:正号先生
导读:1.0前言 之前我们探讨过一个.class文件是如何被加载到jvm中的。但是jvm内又是如何划分内存的呢?这个内被加载到了那一块内存中?jvm内存划分也是面试当中必被问到的一个面试题。 1.1什么是JVM内存区域划分? 其实这个问题非常简单,JVM在运行我们写好的代码时

我们实例化的所有对象都是存放在这个内存中。这个实例化的对象里面会包含一些数据,我们用上面的代码来做栗子。

  1. public class Student{ 
  2.  private String name = "lisi"; 
  3.  public String getNmae(){ 
  4.  return name; 
  5.  } 
  6. public class People{ 
  7.  public static void main(){ 
  8.  Student student = new Student(); 
  9.  student.getName(); 
  10.  } 

还是这个代码,当main线程执行main()方法的时候,首先在堆内存中实例化Student对象,然后在局部变量中创建student,student存的是实例化Student对象的内存地址。然后执行Student对象的getName()方法。

如下图:

你真的了解JVM?JVM中有哪些内存区域,都有哪些作用?

由上图可以看出来,栈空间是封闭的,是线程安全的,而堆内存中是我们主要发生线程不安全的地方,因为堆内存的空间所有的线程其实都是能共享的。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读