类加载过程:加载、链接(验证、准备、解析)、初始化
初始化
Java虚拟机必须保证一个类的()方法在多线程环境中被正确地加锁同步,如果多个线程同 时去初始化一个类,那么只会有其中一个线程去执行这个类的()方法,其他线程都需要阻塞等 待,直到活动线程执行完毕()方法。如果在一个类的()方法中有耗时很长的操作,那就 可能造成多个进程阻塞。
其他线程虽然会被阻塞,但如果执行<clinit>()方法的那条线程退出<clinit>()方法 后,其他线程唤醒后则不会再次进入<clinit>()方法。同一个类加载器下,一个类型只会被初始化一 次。