想理解这两个的区别,需要了解常量池机制:
String str=“ab” :
不需要new 就可以产生对象的,它创建对象时,首先在常量池中找有没有值为"ab"的对象,如果有,就直接把引用(意思就是str)指向该值,不需要重新new一个对象;如果没有,就在常量池中new一个值为"ab"的对象

String str=new String(“ab”):
和普通对象一样,每次new,都会在堆中重新创建一个值为"ab"的对象,不管堆中有没有值为"ab"的对象
例子:
比较String时:"=="比较的是内存地址,"equals"比较的是值
彻底理解String与new String()区别

如果想彻底理解"=="与"equals"的区别,可以看一下这个博客:https://blog.csdn.net/qq_41936224/article/details/106421301

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-21
  • 2021-08-10
  • 2021-07-22
  • 2021-09-05
  • 2022-12-23
  • 2021-11-24
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-06
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案