zoukankan      html  css  js  c++  java
  • jvm详情——1、堆中存什么?栈中存什么?

    数据类型
      Java虚拟机中,数据类型可以分为两类:基本类型引用类型。基本类型的变量保存原始值,即:他代表的
    值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象
    本身存放在这个引用值所表示的地址的位置。


      基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress
      引用类型包括:类类型接口类型数组

     

    栈是运行时的单位,而堆是存储的单位

     栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、放在哪儿。

    堆中存什么?栈中存什么?


    堆中存的是对象。栈中存的是基本数据类型堆中对象的引用。一个对象的大小是不可估计的,或者说是可
    以动态变化的,但是在栈中,一个对象只对应了一个4btye的引用(堆栈分离的好处:))。
    为什么不把基本类型放堆中呢?因为其占用的空间一般是1~8个字节——需要空间比较少,而且因为是基本
    类型,所以不会出现动态增长的情况——长度固定,因此栈中存储就够了,如果把他存在堆中是没有什么意义
    的(还会浪费空间,后面说明)。可以这么说,基本类型和对象的引用都是存放在栈中,而且都是几个字节的
    一个数,因此在程序运行时,他们的处理方式是统一的。但是基本类型、对象引用和对象本身就有所区别了,
    因为一个是栈中的数据一个是堆中的数据。最常见的一个问题就是,Java中参数传递时的问题。

  • 相关阅读:
    ASFNU SC Day6
    ASFNU SC Day3
    ASFNU SC Day2
    ASFNU SC Day1
    2017-9-3 校内模拟T2取数win
    2017-9-3 校内模拟T1卡片card
    (补题)苗条的树(poj_3522)
    跳跳棋(9018_1563)(BZOJ_2144)
    Java之JSP和Servlet基础知识。
    JSP中的九大内置对象
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/10185855.html
Copyright © 2011-2022 走看看