Java中的String类型

一、String类型

         字符串一旦定义是不可改变的,为什么呢?因为声明一个String类型的对象给其赋值的过程,是String类型中存放常量池中相应值的地址的过程。每次对String重新赋值,相当于在常量池中先查找是否有相应的值,若有则存放该值在常量池的地址;若没有,则在常量池中新开辟空间存放该值,然后String对象存放该值在常量池的地址。

二、==equals区别(String

        ==两个对象的地址相同(==比较内存地址)

          1.    java.lang.String aString="abc";

                 java.lang.String bString="abc";

      这样声明aStringbString指向的字符串常量池中地址相同,故值也相同

           2.   java.lang.String aString=new String("abc");

                 java.lang.String bString=new String("abc");

      这样通过new方法新建对象,在堆区中新建了两个地区,aString和bString分别指向堆中的两个地区。

                故两个对象的值相同,但指向的堆中的地址不相同

         String类中的equals方法确实重写了,只比较值相同

          注:基本类型equals方法未被重写,若使用包装类equals方法都被重写

三、 拼接字符串

   拼接字符串禁止使用+=的方式,而使用StringBuilder或者Stringbuffer

         1.  StringBuilder和StringBuffer的区别:

                 StringBuilder非线程安全,单线程使用

                 StringBuffer线程安全,多线程使用

         2.  String+= StringBuilder StringBuffer性能比较:

                String+=StringBuilderjdk1.8之后 性能一样,因为String+=的方式在jdk1.8之后做了优化,StringBuffer差一些

   3.拼接字符串的方法:

      先new对象,使用append方法追加内容     

 StringBuilder builder=new StringBuilder();
 builder.append("a").append("b").append("c");
 System.out.println(builder.toString());



  
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值