1、String对象的创建

1.1字面量创建String对象

String s1 = "abc";//字符串常量池中添加"abc"对象,返回引用地址给s1对象

String s2 = "abc";//通过equals()方法判断常量池中已有值为abc的对象,返回相同的引用

System.out.println(s1==s2);//true  所以s1==s2

String s5 = "x"+"y";//经过JVM(Java虚拟机)优化,直接在常量池中添加"xy"对象

1.2new创建String对象

String s3 = new String("def");//在常量池中添加"def"对象,在堆中创建值为"def"的对象s3,返回指向堆中s3的引用

String s4 = new String("def");//常量池中已有值为"def"的对象,不做处理,在堆中创建值为"def"的对象并返回指向它的引用s4

String s6 = new String("1")+new String("1")+new String("2");//通过StringBuilder实现,在常量池中添加“1”和“2”两个对象,在堆中创建值为“112”的对象,把引用地址给s6

对应的图示:

Java学习-String对象不同方式创建的比较

 

相关文章:

  • 2021-07-22
  • 2019-01-07
  • 2021-07-12
  • 2021-09-07
  • 2020-07-18
  • 2020-01-06
  • 2021-12-29
  • 2021-10-04
猜你喜欢
  • 2020-09-29
  • 2021-12-05
  • 2021-11-16
  • 2021-09-16
  • 2018-12-01
  • 2021-11-16
  • 2021-10-19
相关资源
相似解决方案