java语言中的存储结构:
队列:先进先出;
堆:内存中,树型结构,访问速度慢,存储量大
java一般使用new创建的对象,都是存储在堆中的;
每次调用new都会在内存中创建一个对象;
堆中的元素可以重复;
栈:缓存中,先进后出,访问速度快,存储量小
java一般变量的地址引用、常量值是放在栈里面;(查找速度快)
在java中会划分不同栈用于存储变量的地址引用及常量;
专门用于存储常量的栈,也叫作常量池;
如果是专门用于存储字符串常量的栈,也可以叫做字符串(常量)池
注意:用于存储常量的栈中的元素是不能重复的;
java中字符串的存储:
java中字符串可以存储在常量池栈中,也可以存储在树型的堆中;
(1)使用字符串常量复制的字符串对象存储在字符串常量池中;
(2)使用new创建的字符串对象存储在堆中;
(3)使用 + 拼接符创建的字符串对象存储在堆中。
(注意,+ 操作的两个字符串中至少有一个是队中的字符串对象)