포장 류 의 Character 소스 코드 에 대한 분석
9517 단어 Java
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;
내장 류
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),특수 문자 인지 아 닌 지,대문자 소문 자 인지 아 닌 지 등 도 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.