-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathString002.java
More file actions
84 lines (64 loc) · 3.58 KB
/
Copy pathString002.java
File metadata and controls
84 lines (64 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package strings;
/**
* Created by WERT on 09.01.2017.
*/
public class String002 {
private static final int SIZE_OF_STRING = 10_000;
private static long time;
public static void main(String[] args) {
// пример создания строк в Java
String s1 = "Hello"; // Строковый литерал
String s2 = "Hello"; // Строковый литерал
String s3 = s1; // одинаковые ссылки
String s4 = new String("Hello"); // Строковый объект
String s5 = new String("Hello"); // Строковый объект
String s6 = s5; // одинаковые ссылки
System.out.println("хэш объекта s1 = " + System.identityHashCode(s1) + " хэш строки " + s1 + " = "
+ s1.hashCode());
System.out.println("хэш объекта s2 = " + System.identityHashCode(s2) + " хэш строки " + s2 + " = "
+ s2.hashCode());
System.out.println("хэш объекта s3 = " + System.identityHashCode(s3) + " хэш строки " + s3 + " = "
+ s3.hashCode());
System.out.println("хэш объекта s4 = " + System.identityHashCode(s4) + " хэш строки " + s4 + " = "
+ s4.hashCode());
System.out.println("хэш объекта s5 = " + System.identityHashCode(s5) + " хэш строки " + s5 + " = "
+ s5.hashCode());
System.out.println("хэш объекта s6 = " + System.identityHashCode(s6) + " хэш строки " + s6 + " = "
+ s6.hashCode());
s3 = "world"; // создался новый объект в string pool
System.out.println("\nстрока s1 = " + s1); // строка s1 осталась неизмененной
System.out.println("хэш объекта s3 = " + System.identityHashCode(s3) + " строка = " + s3);
System.out.println();
s6 = "Hello"; // ссылка на существующий объект в string pool
System.out.println("хэш объекта s6 = " + System.identityHashCode(s6) + " строка = " + s6);
System.out.println();
s4 = s4.intern(); //ищется ссылка на существующий объект в string pool
System.out.println("хэш объекта s4 = " + System.identityHashCode(s4) + " строка = " + s4);
System.out.println();
System.out.println("World" + " = " + System.identityHashCode("World"));
String s7 = "World";
System.out.println("s7 = " + System.identityHashCode(s7));
// метод intern() ищет есть ли создаваемая строка в пуле
String s8 = new String("World").intern();
System.out.println("s8 = " + System.identityHashCode(s8));
String sL = "";
String sO = new String();
System.out.print("\nНа создание строки sL ушло ");
startBenchmark();
for (int i = 0; i < SIZE_OF_STRING; ++i)
sL += "1";
stopBenchmark();
System.out.print("\nНа создание строки sO ушло ");
startBenchmark();
for (int i = 0; i < SIZE_OF_STRING; ++i)
sO += "1";
stopBenchmark();
}
private static void startBenchmark() {
time = System.currentTimeMillis();
}
private static void stopBenchmark() {
time = System.currentTimeMillis() - time;
System.out.println(time + "мс");
}
}