一、前言(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会形成一些。 内容相同,但地址不同,也不是同一对象。