Java는 다양한 항목에 대해 내부 캐싱을 가지고있는 것으로 보이며 (새 구성 요소의 생성에도 적용됩니다).
이
public class Test {
public static void main(String[] args) {
long l11 = System.currentTimeMillis();
new JDialog();
long l12 = System.currentTimeMillis();
long l21 = System.currentTimeMillis();
new JDialog();
long l22 = System.currentTimeMillis();
System.out.println("dialog 1: " + (l12 - l11) + " ms");
System.out.println("dialog 2: " + (l22 - l21) + " ms");
}
}
출력 :
dialog 1: 54 ms
dialog 2: 1 ms
당신은 다른 스윙 구성 요소 (또는 많은) 함께 만든 심지어 사용자 정의 구성 요소를 new JDialog();
을 대체 할 수 있으며 비슷한 결과를해야합니다 이것 좀보세요.
패널/구성 요소를 재설정해야 새로운 (새로운) 패널부터 시작하는 것이 더 좋습니다. 이렇게하면 해당 패널을 유지 관리하는 동안 발생할 수있는 모든 오류/버그가 제거됩니다.
메모리를 생성하거나 유지하는 데 리소스가 많은 대화 상자처럼 보이지 않습니다. 몇 가지 * 1000 * 구성 요소에 대해 언급 한 적이 있다면 .. 이러한 유형의 대화 상자를 사용하는 첫 번째 방법은 1) 필요할 때만 동적으로 생성 한 다음 2) 나 같은 시간까지 참조를 유지하는 것입니다. 'OutOfMemoryError' (그리고 심지어 그때까지, 나는 앱의 다른 부분을 먼저 살펴볼 것입니다.) –
"더 나은 실습입니다"는 주로 의견 기반이기 때문에 stackoverflow에 대한 적절한 질문이 아닙니다. 내 의견 : 인스턴스화하고 당신이 "행복하다"는지 확인하십시오. "너무 길어서"여는 것이 아니라면, 그 전에는 최적화에 대한 두뇌를 시작하십시오. – chiccodoro
"정적이 아닌"스타일로 만드는 것은 상당히 큰 투쟁입니다. 따라서 나는 합리적인 금액의 리소스를 저장해야만 할 것입니다. 그것은 의견에 근거한 질문이 아닙니다. 그것은 완전히 기술적입니다. –