zoukankan      html  css  js  c++  java
  • Java堆栈内存总结

    在Java中,主要存在四块内存空间,除了保存static类型属性的全局数据区,以及保存虽有方法定义的全局代码区之外,程序员更多的在乎内存中的另外两种区域——对象的生存空间堆(heap)和方法调用及变量的生存空间栈(stack)。当虚拟机启动时,它会从底层的操作系统取得一块内存,并以此区段来执行Java程序。至于有多少内存,以及你是否能够调整它都要看Java虚拟机与平台的版本而定。

    栈内存空间

    局部变量和方法的参数都是被声明在方法中。它们是暂时的,且声明周期只限于方法被放在栈上的这段期间(也就是方法调用至执行完毕为止)。

    堆内存空间

    实例变量事故被声明在类而不是方法里面。它们代表每个独立对象的“字段”(每个实例 都能有不同的值)。实例变量存在于所属的对象中,而对象又存在于堆中,对象的名称却是保存在栈中。

    实例变量与局部变量的区别:除了在内存分配机制上的区别之外,二者在声明和初始化上也有着很大的区别。

    实例变量永远都会有默认值——

    integers  0

    floating points 0.0

    booleans false

    references null

    局部变量没有默认值!如果在变量初始化前就要使用的话,编译器会显示错误。

  • 相关阅读:
    CentOS7 安装 Mysql 服务
    git 第一次 push 遇到问题
    为什么PHP(CLI)同一个错误信息会打印两次?
    python密码输入模块getpass
    Linux安装JDK详细步骤
    嘿嘿嘿,开始自学mysql
    Bable实现由ES6转译为ES5
    AJAX
    模板层
    lshw查看系统硬件信息
  • 原文地址:https://www.cnblogs.com/ioveNature/p/6667566.html
Copyright © 2011-2022 走看看