{"image_url":null,"url":"https://yohhoy.hatenadiary.jp/entry/20140715/p1","categories":["Java"],"provider_url":"https://hatena.blog","published":"2014-07-15 00:00:00","blog_url":"https://yohhoy.hatenadiary.jp/","provider_name":"Hatena Blog","author_url":"https://blog.hatena.ne.jp/yohhoy/","height":"190","width":"100%","description":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9eJava\u306b\u304a\u3051\u308b\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u30b7\u30f3\u30b0\u30eb\u30c8\u30f3\u9045\u5ef6\u521d\u671f\u5316\u30a4\u30c7\u30a3\u30aa\u30e0\u3002Double-checked locking\u30a4\u30c7\u30a3\u30aa\u30e0\u3068\u7570\u306a\u308a*1\u3001\u53b3\u683c\u306a\u30e1\u30e2\u30ea\u30e2\u30c7\u30eb\u304c\u5b9a\u7fa9\u3055\u308c\u306a\u3044Java 1.4\u4ee5\u524d\u3067\u3082\u6b63\u3057\u304f\u52d5\u4f5c\u3059\u308b\u4e8b\u304c\u4fdd\u8a3c\u3055\u308c\u3066\u3044\u308b\u3002 public class Foo { private Foo() {} private static class LazyHolder { private static final Foo INSTANCE = new Foo(); } public static Foo getInstance() { return LazyHolder.INSTANC\u2026","author_name":"yohhoy","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fyohhoy.hatenadiary.jp%2Fentry%2F20140715%2Fp1\" title=\"Initialization On Demand Holder idiom - yohhoy\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","title":"Initialization On Demand Holder idiom","blog_title":"yohhoy\u306e\u65e5\u8a18","type":"rich","version":"1.0"}