Characterソースの浅い分析が完了していません

1329 ワード

一、Characterのキャッシュ設計

private final char value;

private static class CharacterCache {
	private CharacterCache(){}
        //  127+1 
	static final Character cache[] = new Character[127 + 1];
	static {
	    for(int i = 0; i < cache.length; i++)
		cache[i] = new Character((char)i);
	}
    }

二、方法ソースの解析
2、Character方法のソースコードの浅い分析.

 // valueOf  127 , new
 public static Character valueOf(char c) {
	if(c <= 127) { // must cache
	    return CharacterCache.cache[(int)c];
	}
        return new Character(c);
    }

  public String toString() {
        //  buffer ? , String.valueOf(value) ?
        char buf[] = {value};
        return String.valueOf(buf);
    } 

 public static int codePointAt(CharSequence seq, int index) {
        char c1 = seq.charAt(index++);
        if (isHighSurrogate(c1)) {
            if (index < seq.length()) {
                char c2 = seq.charAt(index);
                if (isLowSurrogate(c2)) {
                    return toCodePoint(c1, c2);
                }
            }
        }
        return c1;
    }