Part II
关于对象的缓存问题,今天老师提出了一个方案,先把今天展示的方案的代码贴出来:
1: import java.util.HashMap;
2: import java.util.Map;
3:
4: public class Grade {
5:
6: private static Map<String, Grade> map = new HashMap<String, Grade>();
7:
8: private String name;
9:
10: private Grade(String name) {
11: this.name = name;
12: }
13:
14: public static Grade getInstance(String name) {
15: if (map.containsKey(name)) {
16: return map.get(name);
17: }
18: Grade grade = new Grade(name);
19: map.put(name, grade);
20: return grade;
21: }
22:
23: }
1: public class GradeTester {
2:
3: public static void main(String[] args) {
4: Grade grade1 = Grade.getInstance("A");
5: Grade grade2 = Grade.getInstance("B");
6: Grade grade3 = Grade.getInstance("A");
7:
8: // 结果为false,证明grade1和grade3是不同的实例对象
9: System.out.println(grade1 == grade2);
10: // 结果为true,证明grade1和grade3是同一个实例对象
11: System.out.println(grade1 == grade3);
12: }
13:
14: }