java吧 关注:1,298,907贴子:12,836,340
  • 1回复贴,共1

Java 每日一题:2016年7月27日

取消只看楼主收藏回复

每天在这里贴一道 Java 题。
问题不难,有 Java 的基本知识就可以做出来。
问题也不偏,日常工作中时不时会碰到。
每日一题索引页:52.36.153.52:8080/javaquestions/

请问应该用哪种方式创建字符串对象?


1楼2016-07-27 12:26回复
    应该使用第一种方式。用第二种方式会多创建一个对象。
    Java 使用字符串常量池来保存字符串对象。
    第一种方式会先查找常量池中是否有 “Java” 这个字符串对象,如果有,直接返回指向这个字符串的引用;如果没有,创建 “Java”,然后返回指向这个对象的引用。
    第二种方式不但要在常量池中查找或创建 “World” 字符串,还要在堆中创建一个对象,然后返回指向堆中这个对象的引用。
    看看下面这段程序:

    从 == 和 equals 的比较结果可以看出,str1 和 str2 实际上指向同一个对象,而 str2 指向另一个对象。


    9楼2016-07-27 21:19
    回复