Java中,通过String的两种赋值方法引出堆、堆栈、常量池(静态常量池、运行时常量池),个人理解

本文详细介绍了Java中String赋值的两种方式:直接赋值和构造方法,以及它们在内存使用上的差异。直接赋值会将字符串放入常量池,而构造方法创建的对象不会自动进入池。同时,解释了堆、堆栈和常量池在内存管理中的角色,其中堆存储new出来的对象,堆栈存储基本类型和对象引用,常量池则存储字符串和基本类型常量。理解这些概念对于优化Java程序性能至关重要。
摘要由CSDN通过智能技术生成
1、String赋值的两种方式的不同:
直接赋值:只能产生一个实例化对象,并且"www.mldn.cn"可以自动保存到对象(常量)池之中,以实现数据重用,如下:
String str = "www.mldn.cn";
构造方法;会产生两个实例化对象,并且不会自动入池,无法实现数据重用,到那时可以利用inter()方法手动入池,如下:
String  str = new String("www.mldn.cn");
2、堆、堆栈、常量池:
      堆:存储从new中出来的所有对象;
      堆栈:存储基本数据变量和对对象的引用。 对象(new出的对象)本身不存在于堆栈中,而是存储在堆或常量池中(字符串对象存储在常量池中);
      常量池:存储基本类型常量和字符串常量。
3、常量池:
      静态常量池:指的是程序(*.class)在加载前自动将此程序之中的字符串、普通常量、类和方法的信息分配至静态常量池
      运行时常量池:当一个程序(*.class)加载之后,常量中含有变量,分配到运行时常量池
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值