首页 > 编程知识 正文

栈内存与堆内存的区别,java类实现堆栈先进后出

时间:2023-05-03 15:28:49 阅读:25398 作者:2933

一、前言(1、前言) 1、堆栈是两种数据结构,只能在一侧插入和删除数据项。

2、在单片机应用中,堆栈是一个特殊的存储区域,主要是临时存储数据和地址。

3、堆栈、队列优先、先进先出

4、堆栈、先进后出

2、java中堆栈的概念1、堆栈(堆栈)和堆(heap )都是java用于将数据存储到内存中的地方。

2、java自动管理堆栈、程序员不需要忽视(与c不同)。

3、堆栈存储速度比堆快,仅次于CPU寄存器。 缺点是尺寸和生命周期确定,缺乏灵活性。

4、堆栈数据不能在多线程或多个堆栈之间共享

5、堆栈内部多个值相等的变量可以指向同一地址。

6、堆的优势可以动态分布内存大小,生命周期也是动态的。

7、java垃圾收集器自动收集未使用的堆数据。

8、堆的缺点是要在运行时动态分配内存,访问速度很慢。

二、java中的数据类型1、基本类型,8种: int、short、long、byte、float、double、boolean、char

例如,int Red_Ant=1024; 其中Red_Ant是对堆栈中存在的int类型的引用。 (我这才想起来了,有一次我不小心听了一节关于C指针的课,那时候没听清,以后就没去了。 损失,我觉得这里的堆栈概念很相似)。

2、包装类数据:包装相应基本数据类型的类,如Integer、String、Double等。 这些类数据都存在于【堆】中,Java为new ) )语句明确地传递给编译器,在运行时动态创建,因此具有灵活但耗时的缺点。

3,http://www.Sina.com /

String是一种特殊的包装类数据。

即,stringredant=newstring(「abcde " ); 以这样的形式创建,

也可以是String str=“abcde”; 的形式创建。

4、例1 :

String aa=“abcde”

String bb=“abcde”

Timber.d )“结果:”(aa==bb );

结果:真【说明】

这两个引用都指向同一对象。 根据jdk的说明,如下所示。

检查堆栈中是否有包含值“abcde”的地址,如果没有,则打开该地址。 而且,aa对象和bb对象当然都是引用该地址的同一对象。

【联想多】

一个皇帝有两个妻子,大妻子叫皇帝gjdmd,小妻子叫皇帝hxsdbbz,你能理解吗? 但是,只是称呼不同,实际上不是指一个人吗)。

4、例2 :

String aa=“abcde”

stringbb=newstring(「abcde”);

Timber.d )“结果:”(aa==bb );

结果: false【这又说明了什么】

果然是相似的比喻,春秋战国,所谓齐楚秦燕赵魏韩,就不用说了。 他们都有hxsdbbz,但hxsdbbz与hxsdbbz相比当然不同。 new相当于开辟了新的空间,原来的那个不用也认不出来了。 new会形成一些。 内容相同,但地址不同,也不是同一对象。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。