JAVA进阶教学之(String类的构造方法)

试题:

问:以下程序一共创建了几个对象

public class StringTest03 {
    public static void main(String[] args) {
        String s1=new String("aaa");
        String s2=new String("aaa");
    }
}

答:一共创建了3个对象

1个对象是"aaa"在方法区字符串常量池中

2个对象是堆内存中存储的String对象

 

String类的构造方法实例:

public class StringTest03 {
    public static void main(String[] args) {
        String s1="aaa";
        System.out.println(s1);
        //按道理来说s1在实际的内存存储中是一个内存地址,但是这里s1属于String类,进行了重写
        //说明也进行了重写toString方法

        //当一个普通的类的引用输出时,调用的是Object类中的toStirng方法,由于此方法没有重写,故输出的是内存地址
        Customer customer=new Customer("aaa");

        //这里只掌握最常用的构造方法
        byte[] bytes={97,98,99};//分别对应a,b,c
        String s2=new String(bytes);
        //前面说过:输出一个普通的引用的时候,会自动调用toStirng方法,默认object的话,会自动输出对象的内存地
        System.out.println(customer);

        //通过输出结果我们得知,String类已经重写了toString方法
        //输出字符串对象的话,输出的不是对象的内存地址,而是字符串本身
        System.out.println(s2);

    }
}

运行结果:

 

常用的String构造方法

String s="aaa";

String s=new String("aaa");

Stinrg s=new String(char数组)

String s=new String(char数组,起始下标,长度);

Stinrg s=new String(byte数组)

String s=new String(byte数组,起始下标,长度);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值