问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java堆、栈、堆栈,常量池的区别,史上最全总结

发布网友 发布时间:2024-08-20 16:40

我来回答

1个回答

热心网友 时间:2024-08-23 00:58

栈和堆栈,老一辈程序员常说的堆栈,实际上是栈的意思,只是叫法上连在一起,由于历史原因。博主在04年学习数据结构时,书上也是说的堆栈,FILO(先进后出),经常将堆栈与队列,FIFO(先进先出)这两种数据结构进行比较。

系统中的堆、栈和数据结构堆、栈不是一个概念。系统中的堆、栈是真实的内存物理区,数据结构中的堆、栈是抽象的数据存储结构。

数据结构中的堆、栈:
1. 栈:后进先出的数据结构,数据项按序排列,只能在一端进行插入和删除。
2. 堆:完全二叉树或近似完全二叉树,效率高,常用于排序算法、Dijkstra算法、Prim算法等。

系统方面的堆和栈:
1. 栈区:由编译器自动分配释放,存放函数参数值、局部变量值等,操作方式类似于数据结构中的栈。
2. 堆区:可动态申请的内存空间,所有使用new xxx()构造出来的对象都在堆中存储,一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。

Java里的堆、栈和常量池:
1. 栈与堆都是Java用来在Ram中存放数据的地方。Java自动管理栈和堆,程序员不能直接设置。
2. 栈优势:存取速度快,仅次于寄存器;缺点:数据大小、生存期必须确定,缺乏灵活性。
3. 堆优势:动态分配内存大小,使用new xxx()构造出来的对象都在堆中存储,生存期不必事先告诉编译器;缺点:存取速度较慢。
4. 常量池:存放字符串常量和基本类型常量,避免频繁创建和销毁对象,实现对象共享。

Java中的数据类型:
1. 基本类型:int, short, long, byte, float, double, boolean, char。
2. 包装类数据:Integer, String, Double等将相应基本数据类型包装起来的类,全部存在于堆中。

String是一个特殊的包装类数据,其创建过程:
1. 定义一个名为str的String类的对象引用变量放入栈中。
2. 在常量池中查找是否存在内容为"abc"字符串对象。
3. 如果不存在,则在常量池中创建"abc",并让str引用该对象。
4. 如果存在,则直接让str引用该对象。

String的intern()方法:查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其引用;如果没有,则在常量池中增加一个Unicode等于str的字符串并返回其引用。

结论与建议:
1. 使用String str = "abc";的方式,可以在一定程度上提高程序的运行速度。
2. 对于String str = new String("abc");的代码,则一概在堆中创建新对象。
3. 当比较包装类里面的数值是否相等时,用equals()方法;当测试两个包装类的引用是否指向同一个对象时,用==。
4. 由于String类的immutable性质,当String变量需要经常变换其值时,应该考虑使用StringBuffer类。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
捷安特720自带铃铛吗? 捷安特车车把,刹车,铃铛,车把连接杆 你好,我在百度云删除了所有的文件,并且刷新,也删掉了回收站的文件,为什 ... 右肾多发性囊肿严重吗 10mg/kg等于多少ppm谢谢了,大神帮忙啊 盒马鲜生如何下单 盒马鲜生下单方法 篮球中锋有哪些进攻技术 中锋技术要求 零基础中锋训练方法 土鸡科学饲养 用这种头像的男生是什么性格??求大神解答 高质ins量头像|不露脸WeChat男头158张 3x3方管1.2厚1米多重 3✕3不锈钢方管(202)厚度1.5mm长度1.53米数量100颗怎么算? 如果一觉醒来,才发现我正扒在小学一年级课桌上睡觉,这么多年,都只是我... 在李毅贴吧看到一条回复,就一觉醒来回到小学课堂,一切都可以从来。谁... 卧室朝北的优缺点 自考本科和专升本哪个含金量更高呢? 高考专升本和自考本科哪个含金量高? 什么是土地龙植物 什么是善终(探究人生善终概念的内涵和意义) 善终 是什么意思? 消火栓箱内有哪些器材 消火栓栓头为什么会结晶 太阳伞和雨伞的区别在哪儿 太阳伞和雨伞的区别在哪 雨伞和太阳伞有什么区别 海信TC2199M电视中周是什么型号 第三方存管保证金什么意思 ...期货交易所建立的保证金管理制度应当包括以下( )内容。 黄兆峦案情进展 跪求!有谁知道廉江市看守所犯罪嫌疑人系入边的生活情况!急用_百度知 ... 湛江电视台简介 晋武帝司马炎传位傻儿子,是造成其政权短命的主要原因吗? 抹茶冷冻保存的时间 抹茶冷冻保存能放多久 建设工程招标投标法质疑规定是什么 你应该放了他,否则我就要报告给上级的英文 我想知道我从什么时候起得的抑郁症 林允和歌手颜人中恋情疑被曝光,一起打球回家 你是如何看待中考改革的呢? 腾讯微博批量删除广播、听众及收听方法介绍_腾讯微博批量删除广播、听众... 腾讯微博的微博动态怎么删除 我收听了1位听众,取消后在我的主页上有微 ... 删除wps文档里的尾注(去除WPS文档中的脚注和尾注) wps中如何删除脚注 wps如何删除脚注和尾注? wps怎样删除脚注 麻烦把这三张图像素调为720X720的,图都为百度百科上找的,只保留标志不... 从网上下载一幅分辨率为1280×720的图片,并将其设置为桌面背景,如何做... 为什么我总是想去亵渎神明? 为什么汽车后面会有水?