栈和堆的区别(栈和堆分别存放什么)

栈和堆的区别(栈和堆分别存放什么)1、共同点:堆和栈都是Java中用来在RAM中存放数据的地方。2、区别:(1)栈(Stack):Java中一个线程一个栈区,每一个栈中的元素都是私有的,不被其他栈所访问。栈有后进先出的特点,栈中的数据大小与

栈和堆的区别(栈和堆分别存放什么)

1、共同点:堆和栈都是Java中用来在RAM中存放数据的地方。

2、区别:

(1)栈(Stack):Java中一个线程一个栈区,每一个栈中的元素都是私有的,不被其他栈所访问。栈有后进先出的特点,栈中的数据大小与生存期都是确定的,缺乏灵活性,但是,存取速度比堆要快,仅次于CPU中的寄存器,另外栈中的数据是共享的。在Java中,所有的基本数据类型和引用变量(对象引用)都在栈中存储,栈中数据的生存空间一般在当前的scopes内,也就是“{}”的部分,比如:函数的参数值,局部变量等,是自动清除的。

基本数据类型:Java中的基本数据类型包括8种,分别是byte、short、int、long、float、double、boolean、char;

通过以下例子说明: int m=2;

int n=2;

当定义的是基本数据类型时,这些字面值的数据,大小和生命周期皆可知;编译器首先处理 int m=2; 先是在栈中创建一个变量为m的引用,然后查找有没有值为2的地址,没有则开辟一个新的存放字面值为2的地址,然后将m指向2的地址。接着处理 int n=2; 在创建完n的引用变量之后,由于存在2这个数值,则将n指向2的地址。这样会出现(m==n)为true的情况,也就是m和n指向同一个地址。

类对象的引用类型:与字面值的引用不同,当同时指向一个地址的类对象的引用,如果该对象的内部状态发生改变,则另一个对象引用变量也发生变化。与之相反,当定义完m之后,修改m的值,即m=3,那么n不会发生改变,依然等于2。

(2)堆(Heap):Java中只有一个堆,被所有线程共享。堆中的数据没有先后顺序(逻辑上连续就好),堆中的数据不需要事先告诉编译器它的生存期,可以动态的分配内存的大小(动态的申请内存空间),也就是这样导致了存取速度慢。不再使用的数据由Java中的垃圾回收机制自动回收。在Java中由new创建出来的对象都是在堆中的,当垃圾回收机制检测到某对象未被引用时,则自动销毁该对象。

包装类数据:Java中的包装数据类型包括Byte、Short、Integer、Long、Float、Double、Boolean、Character。这些数据类型都是存放在堆中的,Java中通过new( ) 操作显示的告诉编译器,当运行时根据需要动态创建,缺点就是速度慢。

String类型:是一种特殊的包装类,也是通过new( )操作动态的创建数据,比如:String s1=new String("abcd");

(3)方法区:又叫静态区,跟堆一样,被所有的线程共享;方法区包含所有的class和static变量;方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

【版权声明】叽叽歪歪吧提醒您:请在浏览本网站关于《栈和堆的区别(栈和堆分别存放什么)》信息时,请您务必阅读并理解本声明。本站部分内容以及图片来源于商家投稿和网络转载,如网站发布的有关的信息侵犯到您的权益,请及时与我们取得联系,邮箱:20451 17252#qq。com,我们会尊重您的决定并当天作出删除处理。

(0)
上一篇 2022年3月4日 16:53:03
下一篇 2022年3月4日 17:13:03

相关推荐

  • 脾胃虚灸哪里 气海的准确位置图

    脾胃虚灸哪里 气海的准确位置图现在人们的生活节奏越来越快,人们面临各种各样的压力。这就导致我们不容易控制自己的脾气,很容易生怒。这会对我们的身体健康造成严重的影响。我们应该学会控制自己的脾气。那么我们该如何做才能够健脾呢?中医认为肝生怒,怒

    2023年3月27日
    0
  • 神奇动物在哪里国语 神奇动物在哪里2在线观看

    神奇动物在哪里国语 神奇动物在哪里2在线观看其实想看神奇动物在哪里很久了, 一开始是冲着小雀斑去的,第一部确实很吸引我!男主纽特魔法箱子里的世界太美了,全是各种各样的动物神兽,惊呆了麻瓜大叔也惊呆了我!嗅嗅是最可爱的,虽然爱到处偷珠宝偷钱,

    2023年2月8日 生活小百科
    0
  • 录音文件在哪里 手机录音怎么删除一段

    录音文件在哪里 手机录音怎么删除一段电话沟通是日常工作生活中使用最多的沟通方式。有时候互相传达的内容比较多,或者内容比较重要,而恰好身边此时没有纸笔或者不方便记录。这个时候,就要用到电话录音这个功能了。它可以帮助我们一键记录通话语音,同时查

    2023年2月12日 生活小百科
    0
  • 怎么监控老公微信而不被发现(怎么监听对方微信聊天)

    怎么监控老公微信而不被发现(怎么监听对方微信聊天)文|电脑手机那些事儿的功能越来越多,合理利用的各种功能可以让本来枯燥无味的衍生出许多个性化的新玩法。最近,在圈中流行着一种非常好玩的“监控摄像头”状态,还可以左右来回摆动,效果非常逼真。效果

    2022年2月7日 生活小百科
    35
  • 华为平板和手机微信可以同步吗(华为m6平板和手机同时用微信)

    华为平板和手机微信可以同步吗(华为m6平板和手机同时用微信)iPad版本,早就支持了同一个号同时iPad与iPhone(或Android手机)同时在线,而安卓版本一直不支持,用安卓平板实在难用。不过好久不见,安卓新版本终于支持类似iPad版

    2022年3月10日 生活小百科
    11
  • 舍利子是什么意思 崩我一身舍利子是啥意思

    舍利子是什么意思(崩我一身舍利子是啥意思)(说历史的女人——第1392期)一般人死后,经过火葬,除了骨灰外什么也留不下,但有些高僧死后会留下一些彩色的珠子,这些珠子晶莹剔透,七彩斑斓,非常漂亮,叫舍利子。那么为何只有那些得道高僧能留下这些珠

    2022年3月28日
    9
  • 太监怎么净身(宦官如何净身)

    太监怎么净身(宦官如何净身)古装宫廷剧迷总是沉迷于皇帝与嫔妃间勾心斗角,很少人到太监、宫女,事实上他们也在剧里扮演重要角色,太监虽为古代皇室役使男性,大多为家境贫苦人家,为了生活不惜阉割掉生殖器,只为进宫讨生活,这过程称之为「净身」,手法极

    2022年3月8日
    31
  • 微信号能定位吗 公安查了我三年前的微信记录

    微信号能定位吗(公安查了我三年前的微信记录)随着科学技术进步,警察在办案时利用工具和方法更多了。我们经常会看到一些新闻,上午刚刚发布公告,下午就把人抓到了。不得不说,现在警察队伍中的人员素质比过去有很大提高。做事想办法都比过去厉害,这是现在

    2022年3月29日 生活小百科
    13
  • c语言编程用什么软件 c语言在线编程网站

    c语言编程用什么软件(c语言在线编程网站)C语言基本上是大学计算机及其相关专业在大一上学期就会开的一门课程,但是很多学生就是在大一上学期期末的时候很着急,因为自己完全没有学好C语言,感觉一学期白学了,其实究其主要原因,还是因为你在上课认真听

    2022年4月19日 生活小百科
    5
  • 华硕游戏笔记本推荐哪款好 华硕笔记本电脑

    华硕游戏笔记本推荐哪款好(华硕笔记本电脑)今天,华硕天选3系列新品全新发布,作为游戏玩家爱不释手的天选游戏本,本次新装上阵的华硕天选3游戏本在实力上依旧“技能点满”,本次天选3分为Intel版本和AMD版本,Intel顶配版分别采用i7-1

    2022年5月5日 生活小百科
    4

发表回复

登录后才能评论