zoukankan      html  css  js  c++  java
  • 堆内存和栈内存

    Java 把内存划分成两种:一种是栈内存,另一种是堆内存。

    • 栈式存储:
      • 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
      • 优点:存取速度比堆要快,仅次于寄存器,栈数据可以共享。
      • 缺点:存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。
    • 堆式存储:
      • 堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。
      • 优点:堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。
      • 缺点是:由于要在运行时动态分配内存,存取速度较慢。

    java中所有对象都在堆内存中,基本数据存储在栈内存中;

    举例:

    int [] array = new int[5];

    这段代码创建了一个长度为5的整型数组,这个数组的引用名为:array它作为数组的对象存储在堆内存中,而实际数组数据存储在栈内存中

  • 相关阅读:
    python+webdriver(二)
    python+webdriver(一)
    重逢
    在C,C++,java和python运行时解释器和编译器的区别
    hive调优
    github 操作指南
    jupyter 启动时的问题
    海量数据模型实施方法论
    python之Tkinker学习
    使用cmd命令行进行本地证书读取
  • 原文地址:https://www.cnblogs.com/lc1475373861/p/10691979.html
Copyright © 2011-2022 走看看