浅谈jvm内存中,String a=“abc“;与String b=new String(“abc“);的区别
在聊这个问题之前,不妨先谈谈java的内存结构,栈空间、本地方法区、程序计数器、堆、方法区。其中栈空间是私有的,堆空间是共有的,栈空间存放着一些对对象的使用,和一些基本类型,但是空间是极小的一部分,堆空间是jvm内存最大的空间,存放着数组、实体、和一些new出来的对象。了解了这一些知识,我们可以往下分析了。
1、 String a ="abc" 首先在栈空间里面创建变量名a,然后在常量池里面寻找,是否存在abc的常量,如果存在,则将a指向abc的地址,如果不存在,就将在堆空间开辟一个String对象,对象
原创
2022-04-01 15:39:18 ·
990 阅读 ·
0 评论