String类的两种实例化方式

String类的两种构实例化方式

实例化方式产生实例化对象数是否入字符串常量池是否可以实现重用
直接赋值一个自动加入字符串常量池可以重用
构造方法两个不会自动入池,可以手工入池注入池中才可重用

在这里插入图片描述

在这里插入图片描述

说明:
  • 1.使用构造方法进行实例时,JVM会开辟两块堆空间。只使用其中的一块,另外一个由于字符串常量所定义的匿名对象将成为我们的垃圾空间。
  • 2 .用构造方法实例化对象时,可以使用intern方法手工注入常量池中,但是一定要在new的时候调用,实例化完成后再调用就没用用了。

测试:

public class Test {
    public static void main(String[] args) {

        //只会产生一个实例化对象,并且可以自动保存到对象池中,以实现该字符串实例的重用;
        String a="123";
        String b="123";
        System.out.println(a==b);//true


        String c=new String("134");
        String d=new String("134");
        System.out.println(c==d);//false


        String e=new String("123").intern();//调用构造方法时候手工入池
        System.out.println(a==e);//true

        String f=new String("123");
        f.intern();//此时f已完成实例化
        System.out.println(a==f);//false

        String g=new String("145").intern();
        String h="145";
        System.out.println(g==h);//true
    }
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ATFWUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值