포장 류 의 Character 소스 코드 에 대한 분석

9517 단어 Java
포장 류 Character 소스 코드 분석
char     (  Character       )      Unicode   ,            16    。

프롤로그:유 니 코드 소개:
유 니 코드(통일 코드,유 니 버 설 코드,단일 코드)는 컴퓨터 과학 분야 의 업계 표준 으로 문자 집합,인 코딩 방안 등 을 포함한다.유 니 코드 는 전통 적 인 문자 인 코딩 방안 의 한 계 를 해결 하기 위해 만들어 진 것 으로 모든 언어의 모든 문자 에 통일 되 고 유일한 바 이 너 리 인 코딩 을 설정 하여 크로스 언어,크로스 플랫폼 에서 텍스트 변환,처리 요 구 를 만족 시 킵 니 다.1990 년 에 연구 개발 을 시 작 했 고 1994 년 에 정식으로 발표 했다.유 니 코드 문자 인 코딩 표준
클래스 설명:
public final class Character extends Object implements java.io.Serializable, Comparable<Character>

변수:
1.MIN_RADIX/MAX_RADIX:문자열 과 상호 변환 할 수 있 는 최소/최대 기수 입 니 다.
public static final int MIN_RADIX = 2;
public static final int MAX_RADIX = 36;

2 진법 에서 36 진법 까지 지원 하 는 최소 최대 진법 이다.
2.MIN_VALUE/MAX_VALUE:char 형식의 최대 최소 값(0-65536)
public static final char   MIN_VALUE = '\u0000';
public static final char   MAX_VALUE = '\uffff';

3.TYPE:대응 하 는 기본 유형 은 char
 public static final Class TYPE = Class.getPrimitiveClass("char");

4.Uncicode 의 일반적인 분류 문자(문 서 를 보십시오)를 정의 합 니 다.예 를 들 어 대문자 Lu 는 1 로 표시 하고 소문 자 Li 는 2 로 표시 합 니 다.
5.FAST_PATH_MAX:Character 의 최적화 메커니즘 은 순수한 영어 라면 사용 할 수 있 습 니 다.
private static final int FAST_PATH_MAX = 255;

내장 류
  • Subset 와 같은 인 스 턴 스 는 유 니 코드 문자 집합 의 특정한 부분 집합 을 나타 낸다
  •  public static class Subset  {
    
            private String name;
    
            protected Subset(String name) {
                if (name == null) {
                    throw new NullPointerException("name");
                }
                this.name = name;
            }
    
            public final boolean equals(Object obj) {
                return (this == obj);
            }
    
            public final int hashCode() {
                return super.hashCode();
            }
    
            public final String toString() {
                return name;
            }
        }

    2.유 니 코드 블록:유 니 코드 규범 에 있 는 문자 블록 을 나타 내 는 일련의 문자(전 세계 각 언어의)부분 집합 입 니 다.
    유 니 코드 가 자바 에서 구체 적 으로 이 루어 진 것 입 니 다.이 유 니 코드 의 상세 한 해석 과 소스 코드 를 대조 해서 볼 수 있 습 니 다.
    3.CharacterCache:128 비트 char 의 배열 로 ASCII 코드 를 저장 합 니 다.
     private static class CharacterCache {
        private CharacterCache(){}
    
        static final Character cache[] = new Character[127 + 1];
    
        static {
            for(int i = 0; i < cache.length; i++)
            cache[i] = new Character((char)i);          //     , char  int     ASCII     
        }
        } 

    변수 value:모든 Character 클래스 에 대응 하 는 char 기본 형식 저장
    private final char value;

    구조 기:
     public Character(char value) {
            this.value = value;
        }
    

    클래스 방법:
    1.valueOf(char c):char 를 해당 하 는 Character 로 변환
    public static Character valueOf(char c) {
        if(c <= 127) { // must cache
            return CharacterCache.cache[(int)c];
        }
            return new Character(c);
        }

    2.toString(char c):해당 문 자 를 문자열 로 변환 합 니 다.
     public static String toString(char c) {
            return String.valueOf(c);
        }

    3.getPlane(int ch):개인 적 인 방법 으로 int 값 을 65536 배 확대 합 니 다.
    private static int getPlane(int ch) {
            return (ch >>> 16);
        }

    4.isValidCodePoint(int codePoint):유효한 유 니 코드 인 코딩 이 있 는 지 확인 합 니 다(범 위 는 16 진수 0x0000~0x10ffff 입 니 다.유 니 코드 는 최대 1114112 자 를 수용 할 수 있 기 때 문 입 니 다)
     public static boolean isValidCodePoint(int codePoint) {
            return codePoint >= MIN_CODE_POINT && codePoint <= MAX_CODE_POINT;
        }

    멤버 방법:
    1.charValue():Character 에 해당 하 는 기본 형식 char 를 되 돌려 줍 니 다.
    public char charValue() {
            return value;
        }

    2.hashCode():Character 의 해시 가 이 문자 에 대응 하 는 ASCII 값
     public int hashCode() {
            return (int)value;
        }

    3.equals(Object obj):포장 류 의 equals 는 모두 value 값 을 비교 합 니 다.
     public boolean equals(Object obj) {
            if (obj instanceof Character) {
                return value == ((Character)obj).charValue();
            }
            return false;
        }

    4.toString():String 으로 전환
    public String toString() {
            char buf[] = {value};
            return String.valueOf(buf);
        }

    5.대소 문자 변환,숫자 인지 아 닌 지 판단(ASCII 에 대응 하 는 49-57),특수 문자 인지 아 닌 지,대문자 소문 자 인지 아 닌 지 등 도 있다.

    좋은 웹페이지 즐겨찾기