java中的基本数据类型一定存储在栈中吗?

java中的基本数据类型一定存储在栈中吗?首先说明,”java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的。下面让我们一起来分析一下原因:基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来解释一下: 一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因 在方法中…

大家好,又见面了,我是你们的朋友全栈君。

首先说明,“java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的。

   下面让我们一起来分析一下原因:

   基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来解释一下:

   一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因

      在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。

         (1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中

         (2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。

   二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。

       同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量

       (1)当声明的是基本类型的变量其变量名及其值放在堆内存中的

       (2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中

此外,为了反驳观点” Java的基本数据类型都是存储在栈的 “,我们也可以随便举出一个反例,例如:

      int[] array=new int[]{1,2};

      由于new了一个对象,所以new int[]{1,2}这个对象时存储在堆中的,也就是说1,2这两个基本数据类型是存储在堆中,

      这也就很有效的反驳了基本数据类型一定是存储在栈中~~

参考:https://wenku.baidu.com/view/8c66da7e27284b73f2425056.html#

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147126.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 创业之路_小项目创业网

    创业之路_小项目创业网美国《时代周刊》评论曾经有这样一段话,“在21世纪,改变你命运的只有你自己,别期盼有人会来帮助你。从现在开始,‘学习、改变、创业’是通往新世界的唯一道路”。决心创业并已参加培训的学员勇敢地迈出了第一步,只要能吃苦耐劳,勇于开拓,勤于学习,坚忍不拔,一定能实现自己心中的目标。创业,是一个发现和捕捉机会,并由创造出新颖的产品,提升服务,实现其潜在价值的过程。创业能否成功,与创业者的素质…

    2022年10月7日
    3
  • ETH挖矿显卡算力大全[通俗易懂]

    ETH挖矿显卡算力大全[通俗易懂]大家买显卡挖ETH,肯定最关心算力了,这里我整理一版,供大家参考,目前只有主流的整理上了,后期会完善更多的供大家参考!欢迎大家加入大力矿工群:621159725  软件下载:百度云盘链接:https://pan.baidu.com/s/1o9tw41k密码:vkyi…

    2022年6月13日
    38
  • IDEA中使用eclipse快捷键「建议收藏」

    IDEA中使用eclipse快捷键「建议收藏」1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键。按照下面的顺序操作File–>settings–>keymap–>在下来框中选中Eclipse选择Apply保存设置这样改完就是elipse风格的快捷方式了2.单独设置一部分比较主要的与eclipse中不一致的操作2

    2022年5月14日
    216
  • 软件著作权 源码_python申请软件著作权

    软件著作权 源码_python申请软件著作权申请软件著作权时需要清除代码中的注释,可以通过word和Notepad++组合操作来快速的完成1。使用word的插入文件功能合并多个源代码文件,操作方法为:新打开1个word文件,在“插入”标签栏下找到“对象”点击右边的小三角下拉菜单里选择“文件中的文字…”,然后在跳出来的文件选择对话框里选择要合并的文件,如果对话框里没有显示出需要的文件,可能是文件类型过滤器选择的不对,更改为“所有文件…

    2025年11月12日
    2
  • Ubuntu安装微信,三步到位[通俗易懂]

    Ubuntu安装微信,三步到位[通俗易懂]Ubuntu安装微信

    2025年7月28日
    3
  • 索引优缺点

    索引优缺点一、为什么要创建索引呢(优点)?创建索引可以大大提高系统的性能。第一,   通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,   可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,   可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,   在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,   通过使用索引,…

    2022年5月26日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号