下面这个程序就是通过静态初始化块的方法来完成一个不需要main 方法的Java程序:)这个"副作用"很好玩。
public class Hello
{
static{
System.out.println("No MainJava say Hello,World");
System.exit(0);
}
}
另外一个我见到使用这种技巧的地方是在 数据库访问类在初始化数据池用到
class SomeDBManager{
private static InitialContext ic;
private static DataSource ds;
static {
if (ds == null) {
try {
ic = new InitialContext();
ds = (DataSource) ic.lookup("java:comp/env/jdbc/snailIsPigWebApp");
prepareConnection();
} catch (NamingException ex) {
ex.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static Connection getConn() throws SQLException {
return ds.getConnection();
}
public static void prepareConnection() throws SQLException {
Connection conn = getConn();
conn.close();
}
}
参考资料:<<Java2核心技术第7版第1卷>>