> Java > java지도 시간 > 본문

Java는 내부적으로 문자열(UTF-16 또는 수정된 UTF-8)을 어떻게 표현합니까?

DDD
풀어 주다: 2024-11-11 01:32:03
원래의
905명이 탐색했습니다.

How Does Java Internally Represent Strings: UTF-16 or Modified UTF-8?

Java의 문자열 표현 풀기: UTF-16 또는 수정된 UTF-8?

Java 영역에서 문자열의 내부 표현은 다음과 같습니다. 논쟁의 대상이 되었습니다. 겉보기에 신뢰할 만한 두 출처는 상충되는 정보를 제공합니다.

한 출처에서는 Java가 내부 텍스트 표현에 UTF-16을 사용한다고 제안하고 다른 출처에서는 UTF-8의 수정된 버전을 가정합니다. 다음 중 어떤 주장이 사실인가요?

답: 내부 표현을 위한 UTF-16

Java는 문자열, 문자열을 포함한 텍스트의 내부 표현을 위해 UTF-16을 채택합니다. 건축업자 및 기타 관련 구조물. 이 인코딩 시스템은 16비트 유니코드 코드 단위를 활용하여 U 0000 ~ U FFFF 범위 내의 문자 또는 UTF-16 코드 단위를 나타냅니다.

직렬화를 위해 수정된 UTF-8

Java는 내부적으로 UTF-16을 선호하지만 문자열 직렬화에는 비표준 UTF-8 변형을 사용합니다. 직렬화에는 Java 객체를 저장 및 전송 가능한 형식으로 변환하는 작업이 포함되며, 이 맥락에서 직렬화된 문자열은 수정된 UTF-8을 사용하여 표현됩니다.

메모리 내 저장소: 압축 문자열

JVM 수준에서 Java는 UTF-16 인코딩이 필요하지 않은 문자열을 8비트 ISO-8859-1 인코딩을 사용하여 저장할 수 있는 압축 문자열(-XX: UseCompressedStrings로 활성화)을 사용할 수 있습니다. 이 최적화를 통해 특정 유형의 문자열에 대한 메모리 사용량이 줄어듭니다.

Char의 바이트 사용량

Java의 char 변수는 객체 내의 패딩 고려 사항에 관계없이 일관되게 2바이트를 차지합니다. .

코드 포인트 및 문자 표현

65535 제한을 초과하는 문자를 나타내는 코드 포인트는 하나 또는 두 개의 문자( 즉, 2 또는 4바이트).

위 내용은 Java는 내부적으로 문자열(UTF-16 또는 수정된 UTF-8)을 어떻게 표현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿