>  기사  >  Java  >  Java 데이터 유형 및 문자 세트 소개

Java 데이터 유형 및 문자 세트 소개

不言
不言앞으로
2018-11-16 15:45:592911검색

이 기사는 Java 데이터 유형 및 문자 세트에 대한 소개를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

데이터 유형이란 무엇입니까?

간단히 이해하면 데이터 유형입니다.

뭐? 데이터는 어떻게 유형을 가질 수 있나요? 데이터는 그냥 0이나 1로 구성된 바이트코드 아닌가요?

예, 컴퓨터에는 0 또는 1만 저장할 수 있습니다. 즉, 저장 관점에서 보면 실제로는 0 또는 1로 구성된 바이트 코드일 뿐입니다. .

그렇다면 데이터형은 왜 있는 걸까요?

타입은 이해와 계산을 용이하게 하기 위해 데이터를 여러 타입으로 나누는 프로그래머(사람)와 동일하기 때문이죠.

예:

 int a = 0x61;
 char b = 0x61;
 float c = 0x61;
 double d = 0x61;
 System.out.println(a+" "+b+" "+c+" "+d);

출력 결과는 97 a 97.0 97.0입니다.

네 가지 다른 유형의 변수에 동일한 바이트코드 0x61이 지정되었지만 실제로 출력은 다릅니다! 왜?

프로그래머(사람)는 16진수 0x61에 유형을 부여하거나 의미를 부여하기 때문입니다.

유형(의미)을 지정해야 하는 이유는 무엇인가요? 목적은 0 또는 1의 바이트코드가 보다 구체적인 것을 나타내거나 이를 인간이 이해할 수 있는 것으로 매핑할 수 있도록 하는 것입니다.

타입을 설정하지 않고도 숫자 0x61에 대해 다양한 연산을 수행할 수도 있지만. . . 무슨 뜻인가요?

정수를 더하고 빼고 곱하고 나누는 것은 실용적이지 않습니다. 그러나 2진수를 연산하는 것은 의미가 없습니다. 사람이 이해할 수 없는 것은 의미가 없습니다.

그렇다면 데이터 유형이란 무엇일까요?

사람들이 데이터를 보는 방식, 데이터를 이해하는 방식, 데이터를 지정하는 방식, 이것이 데이터 유형입니다.

데이터에 유형이 있는 이유는 데이터 자체에 유형이 있는 것이 아니라 사람들의 의견에 달려 있습니다.

위 프로그램의 출력이 왜 다른가요?

출력이란 데이터를 사람들이 원하는 형식으로 바꿔서 다른 사람에게 보여주는 것이기 때문이죠.

컴퓨터는 사람이 원하는 형식을 어떻게 알 수 있나요? 데이터 유형별!

0x61이 int형으로 지정되면 컴퓨터는 10진수 6*16+1 = 97을 표시해야 한다는 것을 알고 있습니다.

char 유형으로 0x61을 지정하면 컴퓨터는 10진수 6*16+1 = 97로 표시되는 ASCII 코드에 해당하는 문자 'a'를 표시해야 한다는 것을 알고 있습니다.

컴퓨터에서는 둘 다 동일한 바이트 코드 0x61이지만 사람이 유형을 지정하기 때문에 컴퓨터는 다른 결과를 반환합니다.

인코딩과 디코딩의 관점에서

인코딩은 정보를 한 형식이나 형식에서 다른 형식으로 변환하는 과정이고, 디코딩은 인코딩의 역과정입니다.

구체적으로 말하면 인코딩은 인간이 이해하는 것을 컴퓨터가 이해하는 것으로 변환하는 것이고, 디코딩은 컴퓨터가 이해하는 것을 인간이 이해하는 것으로 변환하는 것입니다.

컴퓨터는 무엇을 이해하나요? 우리는 0과 1만 이해합니다. 사람은 어떻습니까? 거의 모든 것.

그들 사이를 변환하는 브리지는 무엇인가요? 데이터형이에요! 데이터의 유형을 지정하고 인간이 이해하는 것을 컴퓨터가 이해하는 바이트코드로 변환하는 방법을 규정해야만 이 변환이 완료될 수 있습니다!

예:

숫자 97의 경우 인간은 십진수로 이해할 수 있지만 컴퓨터는 0이나 1만 이해할 수 있는데 어떻게 컴퓨터가 이해할 수 있게 만들까요? 코드 97. 어떻게? 바이너리 인코딩을 사용하면 97은 1100001이 됩니다. 이렇게 하면 컴퓨터가 이해(저장하고 계산할 수 있음)할 수 있는데, 사람들은 이진코드 1100001을 어떻게 이해할까요? 컴퓨터가 숫자를 표시하면 숫자 1100001을 이진 해독하여 97로 해독하는데, 이를 변환할 수 있는 이유는 이진 인코딩과 디코딩에 대한 규칙이 규정되어 있기 때문입니다. 정수입니다. 문자 'a'를 사람들은 소문자 a로 이해합니다. 컴퓨터가 이를 이해하게 하려면 어떻게 해야 할까요? 아니면 코딩? 어떤 코드? ASCII 코드를 인코딩하면 'a'의 ASCII 코드가 1100001이므로 컴퓨터가 다시 이해할 수 있습니다(저장하고 계산할 수 있음). 컴퓨터가 어떻게 사람들이 1100001을 이해하도록 허용할 수 있습니까? 디코딩해 보세요! ASCII를 디코딩하면 'a'가 되어 사람들이 다시 이해할 수 있게 됩니다! .

다른 사물은 다른 인코딩 방법을 사용하여 동일한 바이너리 코드를 얻을 수 있으며, 동일한 바이너리 코드는 다른 디코딩 방법을 사용하여 다른 것으로 이해될 수 있습니다!

기본적으로 데이터 유형이란 무엇입니까?

은 실제로 데이터를 인코딩하고 디코딩하는 방식입니다! ! !

마지막으로 캐릭터셋이란 무엇일까요?

은 문자를 인코딩하고 디코딩하는 방법입니다!

다양한 문자 세트는 문자의 인코딩(문자를 이진수로 변환) 및 디코딩(이진수를 문자로 변환) 방법을 지정합니다.

System.out.println("你好".getBytes("utf-8") );
System.out.println("你好".getBytes("gbk") );

출력:

[B@677327b6
[B@14ae5a5

] 서로 다른 문자 집합(utf-8 및 gbk)이 동일한 중국어 "Hello"를 서로 다른 이진 코드로 인코딩하는 것을 볼 수 있습니다.

물론 위 출력은 0과 1이 아니며, 분명히 바이너리 코드도 아닙니다. . . 그 이유는 컴퓨터가 표시할 때 바이너리 코드를 해독하기 위해 ASCII 코드를 사용하기 때문입니다. . . 모두 ASCII 문자가 됩니다. 왜? 디코딩되는 것을 원하지 않지만 show디코딩됩니다! ! !

물론 일부 기술을 통해 바이너리 문자열을 출력할 수도 있지만 이것이 요점이 아니므로 여기서는 설명하지 않겠습니다.

마지막이자 마지막

컴퓨터는 어떤 분야에서 인코딩과 디코딩을 처음으로 적용했나요?

어셈블리 언어!

컴퓨터 명령도 이진 코드입니다. 영어 단어를 어셈블리어로 바꾸는 것이 인코딩이고, 이진 코드를 어셈블리어로 바꾸는 것이 디코딩입니다!


위 내용은 Java 데이터 유형 및 문자 세트 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제