[java] Java 수정 자의 합리적인 순서 (추상, 최종, 공개, 정적 등)는 무엇입니까?

Java 수정 자의 합리적인 순서는 무엇입니까?

  • 요약
  • 결정적인
  • 원주민
  • 은밀한
  • 보호
  • 공공의
  • 공전
  • strictfp
  • 동기화 됨
  • 과도 현상
  • 휘발성 물질

최신 정보

에서 나는 표현을 변경 한 추천합리적인 순서가 권장 여부 논의를 진정시키기 위해.



답변

관습 수식의 사용 순서는에서 언급 Java 언어 사양 (그리고 자바 가상 머신 사양) 예에 대한 클래스 수정 다음과 같은 정의 (추출물)를 찾을 수 있습니다 :

ClassModifiers:
    ClassModifier
    ClassModifiers ClassModifier

ClassModifier: one of
    Annotation public protected private
    abstract static final strictfp

[….]

클래스 선언에 둘 이상의 (고유 한) 클래스 수정자가 나타나면 필수는 아니지만 ClassModifier 프로덕션에서 위에 표시된 순서와 일치하는 순서로 나타나는 것이 일반적입니다. (단락 하단에 작은 텍스트!)

당신은 예 수정의 사용이 지정되어 여러 다른 장소에서이 문장을 찾을 여기 필드 수정을 위해.

업데이트 : “지정 / 권장”을 “관습”으로 대체하여이 답변을 수용 할 수 있도록했습니다. 당신은 코멘트를 읽으면 (덕분에이 명확를 만들기 위해 @EJP) ;-)이 점을 고려 – 그럼에도 불구하고 나는 것이 권장 사용에 관례 순서를.

Google은 또한 Java 사양에 언급 된 관례적인 순서를 사용하는 것이 좋습니다 .

public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp

업데이트 :OpenJDK 커뮤니티의 프로젝트를위한새로운 “ Java Style Guidelines “이니셔티브가 있습니다. 또한 수정 자 순서에 대한 권장 사항이 있으며Java 8의 새로운 기본 수정자를포함합니다.

public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp


답변

Java Virtual Machine 사양, 표 4.4 에 따라 주문을 사용하는 것이 합리적입니다.

  • 공공의
  • 보호
  • 은밀한
  • 요약
  • 기본
  • 공전
  • 결정적인
  • 과도 현상
  • 휘발성 물질
  • 동기화 됨
  • 원주민
  • strictfp

답변

int 값을 기반으로합니다.

수정 자 (Java Platform SE 8)

  • 1 : 공개
  • 2 : 개인
  • 4 : 보호됨
  • 8 : 정적
  • 16 : 최종
  • 32 : 동기화 됨
  • 64 : 휘발성
  • 128 : 과도
  • 256 : 네이티브
  • 512 : 인터페이스
  • 1024 : 초록
  • 2048 : strictfp

답변

두 가지 규칙을 사용하여 수정 자 시퀀스를 기억하지만 strictfp는 포함하지 않습니다. 참고로.

  1. 동기화 된 네이티브는 우선 순위가 가장 낮은 사람들입니다.

  2. PPP AS FTV : PPP {노이즈 사운드} AS {시청} FTV {프랑스 TV}.

🙂


답변