1. Java에서도 메모리 누수는 일어날 수 있다.

public class Stack {
	private Object[] elements;
	private int size = 0;
	private static final int DEFAULT_INITIAL_CAPACITY = 16;
	
	public Stack() {
		elements = new Obejct[DEFAULT_INITIAL_CAPACITY];
	}
	
	...
	
	public Object pop() {
		if(size == 0) {
			throw new EmptyStackException();
		}
		
		return elements[--size];
	}
	
	...
}

2. 메모리 누수의 해결

public class Example1 {
	static Object obj2 = new Object(); // 전역으로 선언하는 경우

	public static void func() {
		Object obj1 = new Object();      // 함수 Scope 내부에 선언하는 경우
		
		// do something...
	}
}