2010-04-08 1 views
1

, 정말 같은 기능을 구성 할 정적 내부 클래스를 사용하려면 : 정적 내부 Util 클래스에서 성능 부작용이 있습니까? 같은 구성 요소에 관련이 정적 기능의 무리가 있지만 다른 목적이있는 폴더의 유틸리티 클래스에 대한

class ComponentUtil { 
    static class Layout {      
     static int calculateX(/* ... */) { 
      // ... 
     } 

     static int calculateY(/* ... */) { 
      // ... 
     } 
    } 

    static class Process { 
     static int doThis(/* ... */) { 
      // ... 
     } 

     static int doThat(/* ... */) { 
      // ... 
     } 
    } 
} 

인가가 어떤 Util 클래스의 모든 기능을 사용하는 것과 비교하여 이러한 내부 클래스를 사용하여 성능 저하가 발생합니까?

답변

4

아니요 : 컴파일 할 때 정적 내부 클래스가 이름 (예 : ComponentUtil$Layout)을 갖는 외부 클래스 파일로 컴파일됩니다. 바라건대,이 클래스에 대한 참조는 전체 프로젝트에서 해결 될 것입니다. 그러나 런타임에 완전히 독립적 인 클래스처럼 고려 될 것입니다.

+0

기본적으로 추가 클래스가있는 오버 헤드는 불과 수백 백 바이트에 불과하다고 생각합니다. 그게 내게 좋을거야. 감사. – Fostah

+0

이 클래스 오버 헤드는 이러한 클래스 메서드가 호출 될 때만 적용됩니다. 클래스의 첫 번째 정적 메서드 호출 전에 클래스는 메모리에로드되지 않습니다. – Riduidel

+0

@Riduidel : 비헤이비어에 대한 참조가 있습니까? (외부 클래스로 컴파일 됨) – Edward

관련 문제