zoukankan      html  css  js  c++  java
  • 堆和栈的区别

       对于初学编程的人员来说,变量在内存中是分配在堆中还是在栈中,往往不甚明白,今天我来清晰简单的讲解下。

    ​  当我们看到一个变量类型是已知的,就分配在栈里面,比如INT,Double等。其他未知的类型,比如自定义的类型,因为系统不知道需要多大,所以程序自己申请,这样就分配在堆里面。

     
      值类型与引用类型的分配,如图:

      简单来说,值类型是分配在栈里面,引用类型分配在堆里面。
      那从内存的分配角度来看,是因为值类型,已经知道了类型的范围大小,可以进行有效分配,比如int,计算机是知道其范围的,所以直接由系统分配在栈中,无需自己申请!
      而新的类型,比如自己定义一个类,很明显这个类是不知道大小的,应该有程序自己来申请内存空间,所以由堆来分配!
    注意事项
      栈是堆栈的简称,就像古时候配刀剑,其实是把剑而不是刀

  • 相关阅读:
    mysql 导入excel 或 .csv
    导出Excel
    jQuery.ajax
    在web项目中配置log4j
    数据分析入门
    jdbc的配置(更新中)
    Maven中项目的启动
    Maven中的配置文件
    Maven的插件管理
    Maven的依赖管理
  • 原文地址:https://www.cnblogs.com/thinksasa/p/2970307.html
Copyright © 2011-2022 走看看