1.当使用String str="abc",这种方式时,先去内存的Heap中找是否存在"abc"这个字符串,若存在,则将地址引用。若不存在则创建。

2.当使用String str=new String("abc");时,不管事先是否存在"abc",每次都会创建其新的对象。

测试一下:

String s1="abc";  
        String s2="abc"; 
        String s3=new String("abc");

String s4=new String("abc");

System.out.println(s1 == s2);  
        System.out.println(s2 == s3);

System.out.println(s1 == s3);

System.out.println(s4 == s3);

打印的结果为:

true
        false
        false

false

为什么呢?

参看以上两点可知,s1,s2引用的是相同的地址,故为true

s3又创建了一个新的"abc"对象,故为false

转载于:https://www.cnblogs.com/0515offer/p/4181860.html

String str 与 String str=new String() 区别相关推荐

  1. python str byte编码_Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题...

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str ...

  2. String、StringBuffer、与StringBuilder的区别

    原文:http://www.cnblogs.com/sevenlin/p/sevenlin_StringBuffer_StringBuilder20150806.html String.StringB ...

  3. String直接赋字符串和new String的区别

    1. String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new Strin ...

  4. Java基础之String,StringBuilder,StringBuffer三者的区别

    Java基础之String,StringBuilder,StringBuffer三者的区别 目录 运行速度方面 线程安全方面 小结 1. 运行速度方面 运行速度,在这方面运行速度快慢为:StringB ...

  5. java中string 和stringbuffer的区别_Java中的String,StringBuilder,StringBuffer三者的区别...

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  6. 【Java】Java中String、StringBuilder、StringBuffer三者的区别

    这三个类之间的区别主要是在两个方面(运行速度和线程安全)这两方面. 1. 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:  StringBuilder >StringBuffer & ...

  7. Java:中的String,StringBuilder,StringBuffer三者的区别

    Java中的String,StringBuilder,StringBuffer三者的区别 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBu ...

  8. Java面试-String、StringButtfer和StringBuilder之间的区别

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  9. JAVA中String字符串比较equals()和equalsIgnoreCase()的区别

    标签: equals和equalsIgnoreC 2012-11-11 16:03 65644人阅读 评论(0) 收藏 举报  分类: JAVA(3)  1.使用equals( )方法比较两个字符串是 ...

  10. String/StringBuffer/StringBuilder的执行效率以及区别

    1.String.StringBuffer.StringBuilder的异同? 相同点:底层使用char[]进行存储 不同点: String:不可变的字符序列 StringBuffer:可变的字符序列 ...

最新文章

  1. RadGrid使用技巧:从RadGrid获取绑定的值
  2. python中文软件-Python编程软件下载
  3. 设计优秀API的五大规则
  4. [云炬创业学笔记]第二章决定成为创业者测试16
  5. kaggle上传数据集遇到Default slug detected, please change values before uploading
  6. MySQL exists的用法介绍
  7. Linux——用户管理简单学习笔记(三)
  8. js获取用户实时地理位置
  9. Java - HashSet源码解析
  10. 自动化运维工具(ansible入门教程)
  11. 【生信进阶练习1000days】day7-RSQLite的使用
  12. abaqus2019安装教程_Xflow2019和Abaqus2019版本安装不成功的问题解决办法
  13. 07-SNAP处理Sentinel-1 IW GRD数据
  14. JVM_0.5_小故事
  15. 怎么把图片转gif表情包?
  16. word与spoolsv.exe占CPU过高
  17. layui table数据表格前端分页
  18. python-opencv截取视频片段
  19. 酒店管理系统(C语言)
  20. 输入一个日期判断是当年的第几天(C语言)

热门文章

  1. 建立p2p互相连接的社区集群机器人设计(一)
  2. eclipse中复制导入的项目并且修改了项目名字,项目后面的括号显示原来项目的名字
  3. java dom4j读写xml_Java:简单的读写XML文件之使用DOM4J读写
  4. 【hadoop】hadoop 安装 kerberos
  5. 95-910-332-源码-FlinkSQL-Calcite-Flink SQL 整体执行框架
  6. 【Elasticsearch】es IK分词器的安装
  7. 【Elasticsearch】Elasticsearch:Elasticsearch中的refresh和flush操作指南
  8. 【kibana】状态异常 Status: Red Unable to connect to Elasticsearch at http://127.0.0.1:9200.
  9. 【MySQL】小表驱动大表
  10. Docker : Error response from daemon: Get https://docker.elastic.co/v2/: net/http: TLS handshake time