程小白互联网学院吧 关注:24贴子:282
  • 1回复贴,共1

String是类 为什么不需要new对象?

只看楼主收藏回复

String是类 为什么不需要new对象?求大神指教。


1楼2018-08-22 10:25回复
    创建String对象,有两种方式,
    一是new型:String s = new String("abc");
    另一种是双引号型:String s = "abc";
    那么这两种方式有什么区别呢?
    答:这两种方法生成的字符串对象,在内存中的存取机制不同。
    Java为String类型提供了缓冲池机制,当使用双引号定义对象时,Java环境首先去字符串缓冲池寻找相同内容的字符串,如果存在就直接拿出来应用,如果不存在则创建一个新的字符串放在缓冲池中。示例代码如下:
    String a = "tom";
    String b = "tom";
    在上诉代码中,变量a和b使用的是缓冲区中的同一个存储对象。
    在使用String构造方法定义对象时,Java环境会和创建其他类型的对象一样,每次调用时,都会去创建一个新的对象。示例代码如下:
    String a = new String("tom");
    String b = new String("tom");
    在上述代码中,变量a 和b 使用的是两个不同的存储对象,只是对象中的内容相同。
    通常情况下,建议使用string a="tom";。


    2楼2018-08-24 11:54
    回复