1.ThreadLocal是一个泛型类,这保证了它可以接受任何类型的对象。因为一个线程中可以有多个ThreadLocal对象,实际上ThreadLocal在内部维护了一个映射。这个Map不是一个直接的HashMap,而是一个由ThreadLocal实现的名为ThreadLocalMap的静态内部类。我们使用的get()和set()方法实际上调用的是这个ThreadLocalMap类对应的get()和set()方法。