String—“常量与变量”
2021-03-27 17:38:51 1 举报
我为java狂
作者其他创作
大纲/内容
方法区
在字符串池/常量池中的内容,一旦创建后,不会消失,随时可以被指向调用,如果从来没有被调用,可能会被垃圾回收器删除。
(字符串是常量,创建之后不可改变)的原因 可以随时被调用也就是说字符串字面值存储在字符串池中,可以共享
0x0254
堆
指向常量池/字符串池
字符串池/常量池
String—\"常量\"与”共享“
name02
“张三”
package Demo;public class Demo05 { public static void main(String[] args) { String name00 = \"李四\";//在常量池/字符串池中创建\"李四\" name00 = \"张三\"; /** * 此时池中的\"李四\"并不会被删除——字符串是常量,创建之后不可改变 */ String name01 = \"张三\"; /** * 此时程序会在常量池/字符串池中查询有没有张三 * 如果 有 就把 name01 指向池中的地址,因此是和 name00 是一样的 * --字符串字面值存储在字符串池中,可以共享 * 如果 没有 就在池中新建一个地址 \"张三\" * */ }}
在创建一个值后,程序会首先在池内,查找池中有没有该值,有就i共享。(共享后地址是一样的)如果没有的话,就会新建一个。
栈
当修改字符串变量时,不会删除常量池/字符串池中删除内容,而是重新开辟空间,新建一个内容。
name
“李四”
0 条评论
回复 删除
下一页