日期:2014-05-20 浏览次数:20785 次
1. String str=new String("abc"); 2. String str=new String("abc"); 3.
1. public String(String original) { 2. //other code ... 3. } 4. public String(String original) { 5. //other code ... 6. } 7.
1. String str="abc";
1. String a="abc"; 2. String b="abc";
1. String a="ab"+"cd";
1. public class StringTest { 2. public static void main(String[] args) { 3. String a = "ab";// 创建了一个对象,并加入字符串池中 4. System.out.println("String a = \"ab\";"); 5. String b = "cd";// 创建了一个对象,并加入字符串池中 6. System.out.println("String b = \"cd\";"); 7. String c = "abcd";// 创建了一个对象,并加入字符串池中 8. 9. String d = "ab" + "cd"; 10. // 如果d和c指向了同一个对象,则说明d也被加入了字符串池 11. if (d == c) { 12. System.out.println("\"ab\"+\"cd\" 创建的对象 \"加入了\" 字符串池中"); 13. } 14. // 如果d和c没有指向了同一个对象,则说明d没有被加入字符串池 15. else { 16. System.out.println("\"ab\"+\"cd\" 创建的对象 \"没加入\" 字符串池中"); 17. } 18. 19. String e = a + "cd"; 20. // 如果e和c指向了同一个对象,则说明e也被加入了字符串池 21. if (e == c) { 22. System.out.println(" a +\"cd\" 创建的对象 \"加入了\" 字符串池中"); 23. } 24. // 如果e和c没有指向了同一个对象,则说明e没有被加入字符串池 25. else { 26. System.out.println(" a +\"cd\" 创建的对象 \"没加入\" 字符串池中"); 27. } 28. 29. String f = "ab" + b; 30. // 如果f和c指向了同一个对象,则说明f也被加入了字符串池 31. if (f == c) { 32. System.out.println("\"ab\"+ b 创建的对象 \"加入了\" 字符串池中"); 33. } 34. // 如果f和c没有指向了同一个对象,则说明f没有被加入字符串池 35. else { 36. System.out.println("\"ab\"+ b 创建的对象 \"没加入\" 字符串池中"); 37. } 38. 39. String g = a + b; 40. // 如果g和c指向了同一个对象,则说明g也被加入了字符串池 41. if (g == c) { 42. System.out.println(" a + b 创建的对象 \"加入了\" 字符串池中"); 43. } 44. // 如果g和c没有指向了同一个对象,则说明g没有被加入字符串池 45. else { 46. System.out.println(" a + b 创建的对象 \"没加入\" 字符串池中"); 47. } 48. } 49. } 50. public class StringTest { 51. public static void main(String[] args) { 52. String a = "ab";// 创建了一个对象,并加入字符串池中 53. System.out.println("String a = \"ab\";"); 54. String b = "cd";// 创建了一个对象,并加入字符串池中 55. System.out.println("String b = \"cd\";"); 56. String c = "abcd";// 创建了一个对象,并加入字符串池中 57. String d = "ab" + "cd"; 58. // 如果d和c指向了同一个对象,则说明d也被加入了字符串池 59. if (d == c) { 60. System.out.println("\"ab\"+\"cd\" 创建的对象 \"加入了\" 字符串池中"); 61. } 62. // 如果d和c没有指向了同一个对象,则说明d没有被加入字符串池 63. else { 64. System.out.println("\"ab\"+\"cd\" 创建的对象 \"没加入\" 字符串池中"); 65. } 66. String e = a + "cd"; 67. // 如果e和c指向了同一个对象,则说明e也被加入了字符串池 68. if (e == c) { 69. System.out.println(" a +\"cd\" 创建的对象 \"加入了\" 字符串池中"); 70. } 71. // 如果e和c没有指向了同一个对象,则说明e没有被加入字符串池 72. else { 73. System.out.println(" a +\"cd\" 创建的对象 \"没加入\" 字符串池中"); 74. } 75. String f = "ab" + b; 76. // 如果f和c指向了同一个对象,则说明f也被加入了字符串池 77. if (f == c) { 78. System.out.println("\"ab\"+ b 创建的对象 \"加入了\" 字符串池中"); 79. } 80. // 如果f和c没有指向了同一个对象,则说明f没有被加入字符串池 81. else { 82. System.out.println("\"ab\"+ b 创建的对象 \"没加入\" 字符串池中"); 83. } 84. String g = a + b; 85. // 如果g和c指向了同一个对象,则说明g也被加入了字符串池 86. if (g == c) { 87. System.out.println(" a + b 创建的对象 \"加入了\" 字符串池中"); 88. } 89. // 如果g和c没有指向了同一个对象,则说明g没有被加入字符串池 90. else { 91. System.out.println(" a + b 创建的对象 \"没加入\" 字符串池中"); 92. } 93. } 94. }
1. public class StringStaticTest { 2. // 常量A 3. public static final String A = "ab"; 4. 5. // 常量B 6. public static final String B = "cd"; 7. 8. public static void main(String[] args) { 9. // 将两个常量用+连接对s进行初始化 10. String s = A + B; 11. String t = "abcd"; 12. if (s == t) { 13. System.out.println("s等于t,它们是同一个对象"); 14. } else { 15. System.out.println("s不等于t,它们不是同一个对象"); 16. } 17. } 18. } 19. public class StringStaticTest { 20. // 常量A 21. public static final String A = "ab"; 22. // 常量B 23. public static final String B = "cd"; 24. public static void main(String[] args) { 25. // 将两个常量用+连接对s进行初始化 26. String s = A + B; 27. String t = "abcd"; 28. if (s == t) { 29. System.out.println("s等于t,它们是同一个对象"); 30. } else { 31. System.out.println("s不等于t,它们不是同一个对象"); 32. } 33. } 34. }
1. public class StringStaticTest { 2. // 常量A 3. public static final String A; 4. 5. // 常量B 6. public static final String B; 7. 8. static { 9. A = "ab"; 10. B = "cd"; 11. } 12. 13. public static void main(String[] args) { 14. // 将两个常量用+连接对s进行初始化 15. String s = A + B; 16. String t = "abcd"; 17. if (s == t) { 18. System.out.println("s等于t,它们是同一个对象"); 19. } else { 20. System.out.println("s不等于t,它们不是同一个对象"); 21. } 22. } 23. } 24. public class StringStaticTest { 25. // 常量A 26. public static final String A; 27. // 常量B 28. public static final String B; 29. static { 30. A = "ab"; 31. B = "cd"; 32. } 33. public static void main(String[] args) { 34. // 将两个常量用+连接对s进行初始化 35. String s = A + B; 36. String t = "abcd"; 37. if (s == t) { 38. System.out.println("s等于t,它们是同一个对象"); 39. } else { 40. System.out.println("s不等于t,它们不是同一个对象"); 41. } 42. } 43. }
1. public class StringInternTest { 2. public static void main(String[] args) { 3. // 使用char数组来初始化a,避免在a被创建之前字符串池中已经存在了值为"abcd"的对象 4. String a = new String(new char[] { 'a', 'b', 'c', 'd' }); 5. String b = a.intern(); 6. if (b == a) { 7. System.out.println("b被加入了字符串池中,没有新建对象"); 8. } else { 9. System.out.println("b没被加入字符串池中,新建了对象"); 10. } 11. } 12. } 13. public class StringInternTest { 14. public static void main(String[] args) { 15. // 使用char数组来初始化a,避免在a被创建之前字符串池中已经存在了值为"abcd"的对象 16. String a = new String(new char[] { 'a', 'b', 'c', 'd' }); 17. String b = a.intern(); 18. if (b == a) { 19. System.out.println("b被加入了字符串池中,没有新建对象"); 20. } else { 21. System.out.println("b没被加入字符串池中,新建了对象"); 22. } 23. } 24. }