자바의 정석 ch2(1) - 변수의 타입

Yuri JI·2022년 12월 23일
0

변수를 초기화해야하는 이유

메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값(쓰레기 값)이 남아 있을 수 있기 때문이다.

기본형과 참조형 변수

기본형 (8개)
- 논리형(boolean), 문자형(char), 정수형(short, int, long), 실수형(float, double)
- 실제 값을 저장한다.
참조형 (기본형 8개를 제외한 나머지 타입)
- 객체의 주소를 저장한다.

정수형 변수는 int를 사용하자

각 타입마다 저장할 수 있는 값의 범위가 다르므로 저장할 값의 범위에 맞는 타입을 선택하면 된다.
정수는 일반적으로 int를 사용하는데, CPU가 가장 효율적으로 처리할 수 있는 타입이기 때문이다. 효율적인 실행보다 메모리 절약이 우선이라면 byte(1byte),short(2byte)를 사용하면 된다.

실수형의 정밀도

실수형은 오차가 발생할 수 있다는 단점이 있다. 그래서 정밀도가 중요한데, 정밀도가 높을 수록 오차의 범위가 줄어든다. float7자리의 정밀도를 가지고, double15자리의 정밀도를 가진다.

💡 실수형 변수를 선택할 때는 저장 가능한 값의 범위 뿐만 아니라 정밀도도 타입 선택의 기준이 된다.
+) 실수형 타입의 기본형은 double이다.

상수가 필요한 이유

// 리터럴
int triangleArea = (20 * 10) / 2; // 삼각형의 넓이 공식

// 상수 사용
final int WIDTH = 20; // 폭
final int HEIGHT = 10; // 넓이
int triangleArea = (WIDTH * HEIGHT) / 2; 

위 코드를 보면 상수는 리터널에 의미있는 이름을 붙일 수 있기때문에 코드의 이해와 수정을 쉽게 만든다.

printf() 출력

println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.
그래서 변수의 값을 여러 형식으로 변환하여 출력하고 싶다면 printf()를 사용한다.
printf()에는 지시자(ex. %d, \n 등)를 사용할 수 있기 때문이다.

💡 OS마다 줄바꿈 문자가 다를 수 있기 때문에 \n보다 %n을 사용하는 것이 더 안전하다.

💡 지시자의 전체 목록을 보려면, java.util.Formatter 클래스를 보면 된다.

profile
안녕하세요 😄

0개의 댓글