[java] 최종 정적 및 정적 최종의 차이점

코드를 선언 한 코드를 찾았습니다.

private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";

그들 사이의 차이점은 무엇입니까? 아니면 다릅니다 않습니다 privatepublic?



답변

전혀 차이가 없습니다. Java 언어 사양의 8.3.1-클래스-필드 수정 자에 따르면
,

둘 이상의 (명확한) 필드 수정자가 필드 선언에 나타나는 경우, 필수는 아니지만 FieldModifier 프로덕션에서 위에 표시된 순서와 일치하는 순서로 표시되는 것이 일반적입니다.

필드의 경우, 해당 프로덕션은 수정자를 다음 순서로 나열합니다.

@Annotation public protected private static final transient volatile

그리고 방법 :

@Annotation public protected private abstract static final synchronized native strictfp


답변

그들은 동일합니다. 수정 자의 순서는 중요하지 않습니다. Java에서 수정자가 사용되는 모든 컨텍스트 에 동일한 규칙이 적용됩니다 .

그러나 대부분의 Java 스타일 안내서는 수정 자에 대해 동일한 특정 순서를 권장 / 관리합니다. 이 경우는 public static final입니다.


답변

private static final String API_RTN_ERROR= "1";
private final static String API_RTN_ERROR= "1";
static private final String API_RTN_ERROR= "1";
static final private String API_RTN_ERROR= "1";
final static private String API_RTN_ERROR= "1";
final private static String API_RTN_ERROR= "1";

위의 모든 것들은 동일하며 처음 3의 위치는 중간에 있습니다.


답변

그들은 같습니다

private final static String API_RTN_ERROR = "1";

private static final String API_RTN_ERROR= "1";


답변

그들 사이의 차이점은 무엇입니까?

정적 및 최종 순서 변경에 대해 이야기하는 경우 예입니다.

개인 또는 공공에 따라 다릅니 까?

아니요, 비공개 및 공개적으로 모든 주문을 사용할 수 있습니다. 단지 차이점은 개인 변수는 클래스 외부에서 직접 액세스 할 수 없다는 것입니다.


답변

이것은 코딩 스타일의 일관성을 유지하기 위해 사람들이 따르는 관습이나 관행입니다. 가독성을 향상시킵니다. 이것을 쓰는 바람직한 방법은

private static final <Type> <variable_name> = <value>;


답변

물론 동일합니다. 그것은 당신의 습관과 선호에 달려 있습니다 :-). 멤버와 메소드에도 공개 정적 최종 주문을 사용합니다.