当前位置: 首页 > 面试题库 >

String str="i"与 String str=new String(“i”)一样吗?

劳灵均
2023-03-14
本文向大家介绍String str="i"与 String str=new String(“i”)一样吗?相关面试题,主要包含被问及String str="i"与 String str=new String(“i”)一样吗?时的应答技巧和注意事项,需要的朋友参考一下
不一样,因为内存的分配方式不一样。String str=“i"的方式,Java 虚拟机会将其分配到常量池中,如果常量池中有"i”,就返回"i"的地址,如果没有就创建"i",然后返回"i"的地址;而 String str=new String(“i”) 则会被分到堆内存中新开辟一块空间。
 类似资料:
  • String str="i"会将起分配到常量池中,常量池中没有重复的元素,如果常量池中存中i,就将i的地址赋给变量,如果没有就创建一个再赋给变量。 String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。

  • 问题内容: 在javascript中,我看到过在很多情况下都使用过它,并且我知道它会为前面的值添加一个: 但是当我这样做时会发生什么: 并且使用运算符有什么不同(当然,它是减法而不是加法)? 问题答案: 和之间的区别是表达式的值。 该值是增量之前的值。的值是增量后的值。 例: 在与运营商的工作方式相同。

  • 我最近看到一篇博客文章(由@java发布),它暗示下面的代码正在变得越来越普遍: 而不是: 在这种情况下,Optional的使用对我来说似乎非常尴尬,甚至忽略了变量的命名--后者更容易阅读,对于用例来说也更习惯(处理空值)。我相信这也能更好地捕获语义--我的代码可能不符合Optional试图捕获的语义(如本文和Oracle文章所述)。 我看不出来,但是有没有一个好的语义原因来偏好Optional.

  • 问题内容: 有人告诉我,+=效果可能与的标准符号不同i = i +。是否有与以下情况i += 1不同的情况i = i + 1? 问题答案: 这完全取决于对象i。 +=调用__iadd__方法(如果存在- 如果不存在则返回),而+调用方法1或在某些情况下调用方法2。 从API的角度来看,应该将其用于就地修改可变对象(返回已变异的对象),而__add__应该返回某些东西的新实例。对于不可变的对象,这两

  • 问题内容: 哪个更正确?Java的结果为12或C =13。或者,如果不是正确性,请详细说明。 问题答案: 没有比这更正确的了。它实际上是未定义的,称为序列点错误。 http://en.wikipedia.org/wiki/Sequence_point

  • 问题内容: 以下Java程序平均需要0.50秒至0.55秒的时间运行: 如果我替换为,则需要0.60到0.65秒的时间来运行。怎么会? 我对该程序的每个版本运行了15次,两次交替运行。结果如下: 最快的运行时间比最慢的运行时间长。如果它们具有相同的效率,则发生这种情况的可能性将小于。 问题答案: 字节码的顺序略有不同。 : vs : 乍看之下,这没有什么区别;如果有的话,第二个版本更理想,因为它减