デザインモードのDouble check


double checkは、fieldの作成に時間がかかる場合に使用することができ、fieldが必ずしも使用されるとは限らない場合に使用することができる.
	private Object lock = new Object();
	private volatile String content;
	public String getContent() {
		String t = content;
		if (t == null) {
			synchronized (lock) {
				t = content;
				if (t == null) {
					t = content = "InitString";
				}
			}
		}
		return t;
	}

ここでvolatileの使用に注意してください.