Я использую jdk 1.7 в разработке моего приложения. Некоторые из людей, с которыми я говорю, говорят мне, что статический блок не будет выполняться в jdk 1.7, но этот файл выполняется. Может ли кто-нибудь объяснить это мне?Как этот статический блок выполняется в jdk 1.7
package com.treamis.util;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
public class HibernateUtil implements PlugIn {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
@Override
public void destroy() {
}
@Override
public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
}
}
Вы попробовали написать небольшую программу с помощью простого статического блока? (Хотя fwiw, я слышал то же самое) –
выполняется сначала, когда ваш класс лопнет. – subash
«Некоторые из людей, с которыми я говорю, говорят мне» - Не слушайте людей. Только java (или, может быть, Гослинг) может рассказать вам, что он хочет и как это работает. – TheLostMind