美文网首页
5. Java之堆与栈

5. Java之堆与栈

作者: 苏宇lovecc | 来源:发表于2017-10-12 23:14 被阅读18次
    1. 堆和栈都是 Java 中常用的存储结构,都是内存中存放数据的地方:

      • 在方法中定义的基本类型变量和引用类型变量,其内存分配在栈上;变量出了作用域(即定义变量的代码块)就会自动释放。
      • 堆内存主要作用在存放运行时通过 new 操作创建的对象。

      下面这张图展示了 Car myCar = new Car(); 这行代码运行时的内存状态:


      图中 0x6E34 是我们假设的内存地址。myCar 作为一个引用类型变量保存在栈中;而堆中保存着的对象本身,包含了其成员变量,如 speedcolorengine
      如果创建了多个对象呢?

      如果一个对象的成员变量是引用类型变量的话,则
    2. 基本变量类型的值存储在栈中。作用域结束(比如 main 方法执行结束)则这些变量占据的栈内存会自动释放。
      比如我们定义如下代码:

      int color = 0;
      int speed = 100;
      Car myCar = new Car(color, speed);
      

      则内存状态如下:


    相关文章

      网友评论

          本文标题:5. Java之堆与栈

          本文链接:https://www.haomeiwen.com/subject/slkayxtx.html