java 의 String 클래스
알아보고자 들어갔다가, 잘 모르겠지만..
COMPACT_STRINGS true 로 해놓고서, String 생성 과정에서 Latin인지 UTF16인지 구분 처리에 계속 이용되어지는 상수 인 것 같다.
static final boolean COMPACT_STRINGS;
static {
COMPACT_STRINGS = true;
}
StringLatin1.compareTo( byte[] , byte[]) 를 가보면
하나씩 순회하며 다를 경우, char 간의 차이만큼의 수를 반환한다.
동일 할 경우 마지막으로 길이의 차이값을 반환한다.
하지만 실제 디버깅해서 돌리다보면
내부적으로는 이진탐색 과정이 나온다.
a를 기준으로 비교한 결과값들이다.
a 와 c 의 결과와 a와 g의 비교 결과값이 같다.
a의 abcd에서 b의 위치에 대한 비교결과를 보면