티스토리 뷰
무려 613줄까지가(주석 포함) 새성자 관련 구문이다.
생성자는 매우 다양한데, 일반 char[], int[], byte[], StringBuffer, StringBuilder에 이르는 다양한 인자를 기반으로 생성된다. 각각은 배열인 만큼 offset, count 등의 추가 변수를 통한 오버라이딩을 통하여 다양한 변인이 존재한다.
이 때 int[] 를 받는 생성자는 BMP, Supplementary Character를 처리하기 위한 로직이 추가로 존재한다. 따라서 실제 리턴되는 문자열 즉 char[]의 길이는 적용된 부분 배열(subarray of int[])의 길이보다 길어질 수 있다.
byte[] ascii를 받는 생성자는 Depreicated 되어 있는데 Charset 혹은 String charsetName 을 받아 decode하는 생성자를 대신 사용하도록 권하고 있다.
이런 내부 로직을 들어가면 StringDecoder, StringCoding.decode 가 나타나고 Charset의 매칭 및 상응하는 문자를 확인하는 과정 및 형식이 맞지 않는 문자 바이트값에 대해 어떤 에러 리턴값(가령 에러시 표기하기로 정해진 문자열)이 나타날지 확인하는 로직이 있는데 이 내용이 너무 깊다..(볼게 많다..)
decoding 내용은 볼 수 있을까..
'Java' 카테고리의 다른 글
String Class 를 열어보다2(일부 메서드). (0) | 2021.04.02 |
---|---|
String Class 를 열어보다(일부 메서드). (0) | 2021.03.22 |
String Class 를 열어보다(시작). (0) | 2021.03.18 |
com.amazonaws.services.s3.AmazonS3ClientBuilder의 standard() 메서드의 호출 위치. (0) | 2020.11.09 |
Java ConditionalOnClass 어노테이션 (0) | 2020.11.05 |
댓글