다양한 유형의 변수와 상수가 표현식 내에 결합되면 유사한 유형으로 변경될 수 있습니다. 사전 정의된 단일 유형을 다른 유형으로 변환하는 이 기술을 Java에서는 유형 변환이라고 합니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
프로그래밍 언어에서 사용하는 변환에는 두 가지 유형이 있습니다.
프로그래머의 개입 없이 컴파일러를 통해 즉시 유형 변환이 수행되는 경우 이를 암시적 유형 변환이라고 합니다. 컴파일러는 기본적으로 모든 피연산자가 가장 큰 피연산자의 데이터 유형을 지향하도록 권장합니다. 데이터 변환 중에 데이터 손실이 발생하지 않습니다. 변환을 통해 예외가 발생할 가능성이 없으므로 유형이 안전하다고 알려져 있습니다. 더 작은 크기의 수량을 너무 큰 숫자로 변환하면 암시적 변환이 될 수 있습니다. 정수형 데이터를 float형으로 변환합니다.
float i=0; int j=10; i=j;
// float는 정수보다 클 수 있으므로 암시적 변환이 가능하므로 데이터 부족도 없고 예외도 없습니다.
프로그래머를 통해 시행할 수 있는 유형 변환을 명시적 유형 변환이라고 합니다. 근본적으로 프로그래머는 특정 유형이 되도록 표현식을 만듭니다. 명시적 유형 변환은 유형 캐스팅으로 알려져 있습니다. 데이터 변환 중에 데이터 손실이 발생할 수도 있고 발생하지 않을 수도 있습니다. 따라서 세부 사항이 손실될 가능성이 있습니다. 타입 캐스팅 없이 수행하려고 하면 오류가 발생할 수 있습니다. 더 큰 숫자를 더 작은 숫자로 변환하는 것은 명시적 변환일 수 있습니다.
float k=123.456 int i= (int) k
// 이는 명시적 변환일 수 있으며 (int)는 유형 변환, 연산자입니다. 이 시점에서 우리는 예외를 피할 수 있지만 눈에 띄는 데이터 손실을 발견할 수 있습니다. 즉, i=123
// 변환 과정에서 .456이 삭제될 수 있습니다
다른 프로그래밍 언어와 마찬가지로 Java에는 두 가지 유형의 변환이 있습니다.
아래에 자세히 언급된 유형 변환의 예:
코드:
여기에는 간단한 프로그램이 있습니다. 맨 위에는 float, double, byte, short, long이라는 선언이 있고 변수의 이름은 float과 같은 유형이 floatVal과 같은지 식별하는 데 도움이 됩니다.
코드:
길면 길다Val
코드:
프로그램이 실행되면 성공 메시지가 출력됩니다.
여기서 유형 변환 중 일부가 어떻게 작동하는지 살펴보겠습니다. 그럼 먼저 변수를 만들어 보겠습니다. 부족하니 그냥 결과라고 부르겠습니다.
사실, 계속해서 result1이라고 부르겠습니다. 그리고 간단한 과제를 해보자. 먼저 byteVal을 할당하겠습니다. 이제 예상대로 실행하면 성공적으로 실행됩니다.
코드:
출력:
확장 변환이기 때문에 바이트를 짧은 형식으로 할당할 수 있기 때문에 이것이 유효한 할당이라는 것을 알고 있습니다.
하지만 이 byteVal을 가져와 대신 longVal로 만들면 실제로는 long이 됩니다. 이것을 실행하면 호환되지 않는 유형, 긴 형식에서 짧은 형식으로의 변환이 손실될 수 있다는 오류 메시지가 표시됩니다.
코드:
그러면 여기서 할 수 있는 일은 명시적 캐스트를 수행하는 것입니다. 이 앞에서는 짧게 설명하겠습니다. 이제 유효하므로 실행할 수 있습니다.
코드:
물론 효과가 있습니다. 왜냐하면 그것이 축소전환이었기 때문에 롱이 숏으로 들어갈 수 없었기 때문입니다.
출력:
하지만 앞에 명시적 캐스트를 넣으면 이제 유효합니다. 원할 경우 캐스트 표기법을 매우 명시적으로 넣을 수 있으며 바이트 변환이 합법적이지만 거기에 짧은 캐스트를 넣어 명시적으로 캐스팅하고 있음을 보여주고 싶다고 말할 수 있습니다. 그건 완전히 합법적입니다.
코드:
출력:
이제 또 다른 시나리오를 살펴보겠습니다. result2,라고 부르는 또 다른 변수를 만들 예정이며 result2도 짧습니다. 여기서 우리가 원하는 것은 byteVal을 가져와서 longVal을 빼는 것입니다. 이제 우리는 표현식의 결과가 그 안에 있는 가장 큰 정수의 크기, 즉 길이가 되기 때문에 이것이 올바르지 않다는 것을 알고 있습니다.
코드:
그래서 이것을 실행하면 long을 short로 변환하는 것이 유효하지 않다는 오류가 발생합니다.
하지만 결과를 짧게 유지하고 싶다고 가정해 보겠습니다. 캐스팅을 해야 해요. 하지만 우리는 여기서 이 시간을 전체 결과의 가치로 캐스팅하고 싶습니다. 그래서 우리가 할 일은 여기서 짧은 출연진을 앞에 두는 것입니다.
여기서 쇼트캐스트를 앞에 두세요. 그리고 전체 내용을 괄호로 묶습니다. 그리고 실행해 보세요.
코드:
성공적으로 실행됩니다.
출력:
이제 result3이라는 또 다른 변수를 선언하되 이 변수는 long으로 선언하세요. 그래서 결과 3을 얻었습니다. 여기서 우리가 할 일은 longVal – floatVal을 할당하는 것입니다. 그래서 우리는 정수 유형과 부동 소수점 유형이 있을 때마다 결과가 부동 소수점 유형이 되기 때문에 float에서 long으로 변환하는 동안 오류가 손실됩니다.
코드:
이제 결과를 부동소수점으로 변환해 보겠습니다. 따라서 이를 플로트(float)로 만들어서 계속해서 실행할 수 있어야 합니다. 그리고 성공적으로 실행하세요.
코드:
출력:
하지만 이제 여기서 floatVal을 가져와 이를 doubleVal로 변환하고 이를 실행하려고 하면 오류가 발생합니다. 왜냐하면 정수를 수행할 때 결과가 double이 될 것이라고 나와 있기 때문입니다. 부동 소수점인 경우 방정식에서 가장 큰 부동 소수점의 크기입니다.
코드:
이제 결과를 두 배로 만들어서 실행해 보겠습니다.
코드:
출력:
1. 변수는 Java에서 강력한 형식으로 지정됩니다
2. 기본 유형
3. 유형 변환
위 내용은 Java의 유형 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!