日期:2014-05-20 浏览次数:20937 次
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. }