2011-12-20 3 views
2

특히 접근 방식이 더 많은 리소스를 소비하는 J2ME에서는 public static 변수를 조작하거나 set()get() 메소드를 조작합니까?어떤 방법으로 더 많은 리소스를 사용합니까? 정적 또는 getter/setter입니까?

+0

왜 가까운 표를 얻습니까? –

+0

나는 당신이 어떤 종류의 자원을 의미하는지에 관해서이 질문을 약간 확장 할 필요가 있다고 생각한다. 그건 그렇고, 나는이 두 가지가 반드시 교환 가능한 옵션이 아니라고 생각합니다. 정적 변수를 사용하면 코드를 특정 방식으로 설계해야 할 가능성이 높습니다. 나는 단순함을 위해서 모든 "일반적인 이유"에 대해 게터와 세터를 사용할 것을 제안합니다. – posdef

+0

안드로이드에서 J2ME를 요청하는 경우에도 내부 습득/설정기를 사용하지 않는 것이 좋습니다. 설명 [여기] (http://developer.android.com/guide/practices/design/performance.html#internal_get_set) – PeterMmm

답변

0

public static 필드 액세스는 setter/getter 메쏘드보다 적은 리소스를 소비합니다. 현대적인 핫스팟 JVM을 사용하는 경우 최소한의 차이가 있습니다.

0

정상적인 필드에 대한 액세스 권한 이상을 사용하고 설정합니다. 아마도 static이 아닙니다.

2

실제 런타임 환경에 의존하기 때문에 말할 수 없습니다. JIT, AOT 또는 Hotspot 컴파일러는 잠재적 메소드 오버 헤드를 아주 잘 최적화 할 수 있습니다.

2

get()set()을 사용하면 메서드에 직접 액세스하는 것보다 비용이 많이 들지만 컴파일러 나 JIT에서는 메서드 호출을 인라인하여 최적화 할 수 있지만 차이는 무시할 수 있습니다. 또한 일반적으로 모든 속성을 static으로 선언하지 말고 상수 값만 선언해야합니다.

한편, get()set() 메서드를 사용하면 데이터 캡슐화를 적용하는 데 바람직한 옵션이되므로 좋은 개체 지향 프로그래밍 방법입니다. 이러한 메소드가 없으면 속성을 외부에 노출해야하므로 클래스의 구현 세부 사항을 숨기고 구현의 향후 변경 사항을 어렵게 만드는 기능이 줄어 듭니다.

2

접근 자 메서드를 도입하면 클래스 파일의 크기가 크게 늘어납니다. 그러나 :

  • 정적은
  • 는 비트 OO를 선호하고, 오히려 당신은 아마 당신
  • 을위한 오브젝트 코드를 압축 것 난독을 찾을 수 있습니다 무의미 보일러
  • 와 구조체를 작성하는 것보다 행동 방법과 캡슐화 악
관련 문제