方式一:String a = “aaa” ;

方式二:String b = new String(“aaa”);

· 两种方式都能创建字符串对象,但方式一要比方式二更优。

· 因为字符串是保存在常量池中的,而通过new创建的对象会存放在堆内存中。

一:常量池中已经有字符串常量”aaa”

· 通过方式一创建对象,程序运行时会在常量池中查找”aaa”字符串,将找到的”aaa”字符串的地址赋给a。

· 通过方式二创建对象,无论常量池中有没有”aaa”字符串,程序都会在堆内存中开辟一片新空间存放新对象。

一:常量池中没有字符串常量”aaa”

· 通过方式一创建对象,程序运行时会将”aaa”字符串放进常量池,再将其地址赋给a。

· 通过方式二创建对象,程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建了两个对象。


public class StringNewTest {  public static void main(String[] args) {  String a = "aaa";  String b = "aaa";  String c = new String("aaa");  String d = new String("aaa");System.out.println("a==b:"+(a == b));  //trueSystem.out.println("a==c:"+(a == c));  //falseSystem.out.println("c==d:"+(c == d));  //falseSystem.out.println("a与b的值相等:"+(a.equals(c)));  //true}
}  

new String(abc)和“abc”的区别相关推荐

  1. java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...

    这是以前刚学Java那会经常被问到的问题,并且也会经常出现在面试中.这个问题不仅仅只局限于Java,可以适用于其他大部分语言,正好最近有个小朋友在学编程,特此整理一下. String s1 = &qu ...

  2. @abc和abc区别在那里

    //清清月儿 http://blog.csdn.net/21aspnet/ @"abc"和"abc"没有什么区别 不过@是忽略转义字符的! 比如 "a ...

  3. 用java比较abc大小的程序_Java中 abc + '/'和abc + /的区别

    好吧,写这篇博客又是因为一个有趣的帖子.原问题是"String str = "abc" + '/';和"abc" + "/";的区 ...

  4. 计算机考研abc区划分,考研abc区有什么区别

    考研ABC区主要的区别是分数线划分不同.考研ABC区是根据地区发达程度进行划分,一般来说,A区的分数线要比B区的分数线高5至10分,B区的分数线要高C区的分数线5至10分.A区每年的报考人数众多,竞争 ...

  5. String、StringBuffer、StringBuilder区别

    无论是做Java或是Android,都避免不了遇到这个问题,其实开发过程中一般情况下是不会纠结,这个问题是面试必选经典题,今天有时间,就总结一下. String.StringBuffer.String ...

  6. java中拼接和 的区别_浅析Java中String与StringBuffer拼接的区别

    学习笔记: 1.String拼接会创建一个新的String对象,存储拼接后的字符串: StringBuffer拼接是直接在本身拼接,会即时刷新. 2.String只能拼接String类型的字符串: S ...

  7. String,StringBuffer与StringBuilder的区别

    String,StringBuffer与StringBuilder的区别 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全 ...

  8. String, StringBuilder 与StringBuffer的区别与联系

    String, StringBuilder 与StringBuffer的区别与联系 @(JAVA)[java] 1.区别 (1)String构建的对象不能改变,每次对String进行操作时,如两个St ...

  9. 2021-09-15如何把一个字符串的大小写取反(大写变小写小写变大写),例如 ’AbC‘ 变成 ‘aBc‘

    //如何把一个字符串的大小写取反(大写变小写小写变大写),例如 'AbC' 变成 'aBc' var text = "HELloaaPPpp" ; console.log(&quo ...

  10. StringBuffer类,StringBuffer类和String的区别、String,StringBuffer,StringBuilder之间的区别

    1.概述 StringBuffer是一个线程安全的可变序列. 2.StringBuffer与String区别 (1)StringBuffer的长度和内容都可以发生改变,String却不行 (2)Str ...

最新文章

  1. Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)...
  2. 技术除了工作,还有什么可以提升的?
  3. 【NOIP2016PJ】【Luogu2058】海港
  4. SAP Spartacus自定义指令cxOutlet的工作原理
  5. Angular 8正式发布!
  6. Activity中 onResume和onPause与onStart()和onStop()的一些思考
  7. 将一个类改成线程_看了这个有趣的例子,相信你就秒懂多线程同步了
  8. 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果...
  9. 智能化服务器怎么调,怎么设置dns 智能dns设置方法 【图文】
  10. Mac 安装php redis扩展
  11. 图像语义分割 —利用Deeplab v3+训练VOC2012数据集
  12. NAT-PT (Network Address Translation-Protocol)网络地址转换协议转换
  13. MySQL不能插入中文字段的解决办法
  14. linux下思维导图软件,三款适合linux系统的超好用思维导图软件
  15. 分类学 · 狡兔为何偏要有三窟???
  16. 因子分析累计贡献率_数据分析之因子分析
  17. 在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序
  18. Docker_学习笔记
  19. OpenSSL/GmSSL 动态引擎
  20. Python系列:二、数据类型--技术流ken

热门文章

  1. 3559av100 结温参数 是否降频 环境温度
  2. 京东TCL“合伙开店”,看无界零售如何赋能家电制造业
  3. 怎么解决kafka的数据丢失
  4. 【Simulink】蹦极跳系统的数学模型
  5. 亚马逊全球站点之中东站
  6. 使用Python的requests库爬取网页表情包
  7. 如何用短信平台发送自定义短信?
  8. 这样的壁纸,你真的需要一张!
  9. 如何正确实施印刷业ERP(一)
  10. 支付宝亿万级流量的高可用架构