자동타입변환 강제타입변환(자바코딩)

자동타입변환 강제타입변환(자바코딩)

작성일 2021.08.21댓글 1건
    게시물 수정 , 삭제는 로그인 필요

다른건 아니고, 자바를 공부한지 2틀된 학생입니다.
이제 공부하다가 자동타입변환 강제타입변환이라는 과정을 공부하고있는데,
뭐 int 에서 byte로 강제타입변환하고 , byte에서 int로 자동타입변환한다 라는건 알겠는데 
굳이 이걸 왜 변환하는거지 라는 생각이들어서 질문하게 됐습니다.
이걸 언제 사용하고 어떻게 사용하게 되는지,
예를 들어서 설명해주시면 좋을꺼같아요. 감사합니다.




profile_image 익명 작성일 -

안녕하세요.

데이터를 변수에 저장한다는 것은 메모리 어딘가에 공간을 확보하고 그곳에 데이터를 저장하는걸 뜻합니다.

같은 정수타입이라고 하더라도 자바에서는 byte, short, int , long 이렇게 여러개의 기본타입이 존재합니다.

물론 가장 큰 범위의 타입을 사용하면 좋겠지만, 범위가 크다는 것은 보다큰 저장공간을 차지한다는 의미입니다.

만약 내가 사용하는 값이 기껏해야 20억을 넘지 않는다면 일부러 이보다 범위가 엄청큰 long을 사용하는것은

메모리의 낭비가 될 수 있습니다.

용도에 따라 사용하는 값의 범위에 따라 적절한 타입을 선택해 주는것이 좋습니다.

자, 여러가지 타입이 존재하고 효율적인 타입을 선택하는것 까지는 이해가 되셨을겁니다.

우리가 변수에 값을 대입을 하게 됩니다. = 를 대입연산자라고 하고 이 대입과정도 연산의 과정입니다.

연산을 하기 위해서는 피연산자의 타입이 동일해야 합니다.

만약 타입이 서로 다른경우에는 큰타입으로 형변환을 해서 피연산자가 타입을 모두 동일하게 만들게 됩니다.

이후에 연산이 이루어 지는데요,

여기에서 작은범위를 가진 타입에서 큰 범위의 타입으로 변경되는 경우에는 값의 손실이 일어나지 않습니다.

예를 들어 byte 타입에서 int타입으로 변경된다고 할때,

byte는 -128~127의 값을 가집니다. int는 -21억~21억 정도의 범위를 가지는데, byte에서 최고 작은값이나,

최고 높은값을 선택한다고 해도 int의 범위에 쏙 들어가게 됩니다. byte의 모든 범위가 int에 속하게 되지요.

이경우 byte에서 int로 변환한다고 해서 값이 변하거나 하는 일이 발생하지 않습니다.

그런데 반대의 경우를 보면, int가 -21억~21억 정도인데 이를 byte타입에 대입한다고 하면,

물론 byte범위의 값은 byte타입의 변수에 들어갈 수 있겠지만, 이를 벗어난 값들은 byte타입 변수에 저장할 수 없지요.

이경우 범위가 벗어나면서 의도하지 않은 값으로 들어가게 됩니다. 이를 값의 손실로 볼 수 있습니다.

그래서 작은 범위에서 큰범위로 형변환이 일어나야 하는 경우에는 특별한 형변환을 하지 않아도 시스템에서 자동으로

형변환을 해주는데, 이를 묵시적 형변환 , 자동타입변환 등등으로 부르게 됩니다.

반대의 경우에는 값의 손실이 발생될수가 있기 때문에 시스템에서 자동으로 형변환을 하지 않고, 사용자가 값의

손실을 감안하고 형변환을 하고자할때 직접 형변환 연산자를 사용하여 강제로 형변환을 하게 됩니다.

이를 명시적 형변환, 강제타입변환 등등으로 부르게 됩니다.

참고하시고, 궁금하신 부분 있으시면 질문주세요.~

자동타입변환 강제타입변환(자바코딩)

다른건 아니고, 자바를 공부한지 2틀된 학생입니다. 이제 공부하다가 자동타입변환 강제타입변환이라는 과정을 공부하고있는데, 뭐 int 에서 byte로 강제타입변환하고...

타입스크립트 실행

... 타입스크립트 파일을 자바스크립트로 변환한 후, Node.js를 사용하여 해당... 코드가 실행되어 콘솔에 "안녕하세요, 펀코딩님!"이 출력됩니다. 답변이 되었음...

자바 코딩 문제

사진의 조건에 맞게 코딩을 하려고 하는데 너무 어려워요 ㅠㅠ 코딩해서 이해할... 바이트코드를 어셈블리 코드로 자동변환이 됩니다. 바이트코드는 operand stack...

다형성 질문이요. (강제타입변환 / 자바)

... 함(강제타입변환) -> 타입은 부모이고 참조하는 객체는 Child인 참조변수 parent를... 연습코딩이나 단순한 코딩을 하는 경우에는 질문자님이 물어보신것처럼 Child...

자바 강제타입변환

... 꽉 채워진 비트를 가진 int를 byte로 강제타입변환하면 데이터 손실이 일어나듯이. 꽉 채워진 double을 float으로 강제 타입변환하면 데이터 손실이...

Java 강제 타입 변환 질문

... System.out.println(c2); } }[/code] c1+1에서 1은 정수형이므로 c1이 자동 타입 변환이 되서 정수형이 되어 c1+1 값이 정수형이 나오고 강제 타입...

자바(JAVA) 강제타입변환 문제

자바를 공부중인데 사진과 같은 문제가 나왔는데 정답을 모르겠습니다. 사진과같이... int, char, double 는 기본타입이지만, String은 참조타입으로 서로 형변환이 되지를...

java 자동타입변환

자바 자동타입변환에서 byte >> short/char >> int >> long >> float >> double 원래 타입보다 큰 타입으로 변할 때 자동타입변환이 일어난다고 하는데 int는 데이터타입이...