이번에는 자바에서 어떻게 출력을 하는 방법과 자료형 변환에 대해서 알아보겠습니다.
4번에서도 잠깐 나왔지만 자바에서 출력을 하는 방법에는 아래와 같이 3가지가 있습니다.
System.out.println("Hello World");
System.out.print("Hello World");
System.out.printf("Hello World");
이 세 가지 출력문은 출력하는 것은 비슷하지만 조금씩 다른 기능을 가지고 있습니다.
먼저 println을 먼저 보자면,
println은 " "사이에 있는 문장을 화면에 출력을 하고 다음줄로 넘어간 다음 문장이 끝이 납니다.
이와 비슷하게 print는 " "사이에 있는 문장을 표시한 그 자리에서 끝이납니다.
예를 들자면 아래와 같습니다.

또한 변수를 출력하려면 아래와 같이 사용이 가능합니다.
int age = 20;
System.out.println("나이 : " + age); // 결과 -> 나이 : 20
그럼 printf는 어떻게 다를까요?
printf는 print와 같이 " "사이에 있는 문장을 표시하고 그 자리에서 끝이납니다.
중요한 점은 변수와 하고 싶은 말을 동시에 출력할 때 println과 print는 바로 위의 코드와 같이 +를 이용하여 합쳐서 출력을 하는데요.
printf문은 사용하고자 하는 변수를 문자 형식에 맞춰 +를 사용하지 않고 대입이 가능합니다.
int num = 10;
System.out.printf("정수 : %d", num); //결과 -> 정수 : 10
위와 같이 " "사이에 사용하고자 하는 변수의 형식에 맞춰 쓰고 " "가 끝난뒤에 ,변수명 을 사용하여 +를 사용하지 않고도 출력이 가능합니다.
또한 정수 뿐만 아니라 실수, 문자등 원시변수는 전부 대입이 가능합니다.
%d : 정수
%c : 문자
%s : 문자열
%f : 실수
이번에는 조금 어렵지만 알아야하는 자료형 변환에 대해서 알아보겠습니다.
자료형 변환이 필요한 이유부터 알아보자면
int num1 = 50;
long num2 = 987654321L;
둘은 컴퓨터의 입장에서 엄청 큰 차이입니다.
둘의 주소값의 크기도 다를 뿐더러 값도 다릅니다.
그럼 num1 + num2는 어떤 자료형이 나올까요?
이때 사용되는 것이 자동 형변환입니다.
자동 형변환은 미리 규칙을 정해놓고 사용자가 지정하지 않으면 자동으로 변수의 자료형을 변환해 주는것을 말합니다.
규칙 1. 자료형의 크기가 큰방향으로 형변환이 일어난다.
규칙 2. 자료형의 크기에 상관없이 정수 자료형보다 실수 자료형이 우선이다.
이게 무슨 뜻이냐면... 아래와 같이 규칙이 정해져있고 그 순서에 따라 자동으로 형변환이 된다는 것입니다.

따라서 num1 + num2는 자료형의 크기가 더 큰 long으로 변환되어 계산됩니다.
그래서 결과값은 long형 9876543271이 됩니다.
또한 정수형에서 실수형으로, 문자형에서 정수형으로도 형변환이 가능합니다.
그럼 반대로 더 큰 자료형에서 작은 자료형으로 형변환이 가능할까요?
이 때, 사용되는 것이 바로 명시적 형변환입니다.
자동 형변환 규칙에는 부합하지는 않지만, 형 변환이 필요한 상황이면 명시적 형변환을 진행합니다.
하지만 자료형이 큰것에서 작은것으로 바뀌기 때문에 자료의 손실은 확정적입니다.
double pi1 =3.141592;
int pi2 = (int)pi1; //결과 -> pi2 = 3
예를 들자면 위와 같이 나타낼 수 있는데
실수형에서 정수형으로 형변환을 하니 소수점 아래는 저장을 할수 없어 사라지게 됩니다.
마지막으로 공부하면서 얻은 팁을 공유하고 넘어가겠습니다.
제 생각에 자바에서 코딩을 처음하면서 가장 많이 사용하는 명령어는 출력문이라고 생각하는데요.
처음에는 손에 익히기 위해서 손으로 쓰지만 익숙해지면 일일이 치는것이 힘들어 집니다.
이 때, 익숙해지면 시간단축을 위해 syso를 입력 후 ctrl + space를 치시면 한번에 입력이 완료됩니다.
참고하시면 좋을거 같습니다.