必须熟知的String知识点

必须了解的String知识点

1.关于不可变类String,String对象声明后将不可修改
比如说String a1=“aaa”;对象a1声明之后,不可修改指的是“aaa”这个内容不可被修改,a1还可以指向其他对象。

2.String对象太常用了,为了提高String的效率,在程序中提供了“缓存”技术,只要是双引号中的内容,都会在字符串常量符中创建一份,如果以后需要使用此对象,不需要再创建直接用字符串常量池中的即可。

3.字符串常量池就是一个缓冲区,目的是为了提高访问字符串的效率。

4.例题

package comC;
/*

  • 双等号两边的对象如果是引用类型,那么比较的一定是地址

  • */
    import java.lang.String;
    public class StringTest {
    public static void main(String[] args) {

     String s1="Hello";//Hello的位置是在字符串常量池中创建的(字符串常量池位于方法去内存中)
     String s2="Hello";//字符串常量池中已经有了,直接拿来用,所以两个对象地址相同
     System.out.println(s1==s2);//这样比较是不符合规矩的
     
     String s3 = new String("Word");//new创建对象是在堆内存中
     String s4 = new String("Word");//同理,所以两对象不可以用==号比
     
     System.out.println(s3==s4);//不可以
     /*
       警告:比较两个字符串是否一致,必须使用String类提供的equals方法
      */
     System.out.println(s3.equals(s4));//正确的比较方法
     /*
      equals方法来自于Object,在Object中比较的是地址,在String中对equals进行了重写,重写之后比较的是内容。
      */
     //以下程序结束后会在字符串常量池中创建3个字符串对象
     String a1="abc";
     String a2="def";
     String a3=a1+a2;//不推荐使用+进行字符串连接,浪费字符串常量池的空间
    

    }
    }
    eclipse运行结果:
    阿T臭臭
    第一个结果为true,第二个结果为false,第三个结果为true,你能知道至三个结果是为什么就证明你学会了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值