字符串懒加载的证明

字符串是懒加载的,运行的时候相同的字符串会在串池中保存,怎么去证明这件事呢?其实方法很简单,我们利用Idea中的调试就可以看到内存中对象的状态。
准备代码:

import com.sun.tools.attach.AttachNotSupportedException;
import sun.tools.attach.HotSpotVirtualMachine;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

/**
 * 字符串延迟加载的证明
 */
public class StringLazyLoad {
    public static void main(String[] args)  {

        System.out.println("h");

        System.out.println("a");
        System.out.println("b");
        for(int i=0;i<200;i++){
            System.out.println("a");
        }

        System.out.println("c");
        System.out.println("d");
        System.out.println("e");
        System.out.println("f");

        for(int i=0;i<200;i++){
            System.out.println("a"+i);
        }
        System.out.println("g");
    }
}

直接断点查看字符串的个数,到18行的时候是1227
在这里插入图片描述
我们执行到b,字符串的个数是1228,说明是在执行的时候才会加载实例
在这里插入图片描述
我们执行到24行,发现字符串实例的个数1229,并没有因为循环的次数增加200个实例
在这里插入图片描述
说明我们的字符串对象不是来一次新建一次的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值