변수를 선언할 때는 변수명 앞에 자료형을 반드시 표시한다.
자료형은 변수에 저장되는 값의 형태와 크기를 의미하며,
프로그램이 메모리를 어떻게 할당할지 결정하는 기준이 된다.
변수 선언 형식은 다음과 같다.
자료형 변수명 = 값;
자료형은 변수에 저장할 값의 종류에 따라 달라진다.
정수 값을 저장할 때 사용하는 자료형이다.
정수형 변수를 선언할 때는 기본적으로 int 키워드를 사용한다.
intintNum=123;
int는 정수를 뜻하는 integer의 줄임말이다.
정수형은 값의 크기에 따라 다음과 같이 나뉜다.
| 자료형 | 크기 |
|---|---|
| byte | 1바이트 |
| short | 2바이트 |
| int | 4바이트 |
| long | 8바이트 |
long형 값은 뒤에 L 또는 l을 붙여 구분한다.
longlongNum=45678910L;
소수점이 있는 수를 실수라고 하며,
실수형 값을 저장할 때는 float 또는 double을 사용한다.
floatfloatNum=123.4F;
doubledoubleNum=123.4;
float : 4바이트double : 8바이트 (기본 사용)float형 값에는 반드시 뒤에 F 또는 f를 붙인다.
문자 하나를 저장할 때 사용하는 자료형이다.
문자형은 char 키워드를 사용하며 2바이트를 차지한다.
charcharTxt='a';
charcharNum='1';
참(true) 또는 거짓(false) 값만 저장하는 자료형이다.
booleanisTrue=true;
boolean은 1바이트true 또는 false만 가능기본 자료형의 크기를 비교하면 다음과 같다.
byte /boolean
↓
char /short
↓
int /float
↓
long /double
프로그램은 변수를 선언할 때
자료형에 맞는 크기의 메모리를 할당한다.
int : 4바이트long : 8바이트👉 따라서 값의 크기에 맞는 자료형을 사용하는 것이 중요하다.
지금까지 살펴본
byte, short, int, long, float, double, char, boolean
총 8가지 자료형을 기본 자료형(primitive data type) 이라고 한다.
기본 자료형 외에 자주 사용하는 자료형으로 String이 있다.
StringstrTxt="a";
StringstrWord="Java";
StringstrNum="123";
StringstrKor="코딩 자율학습";
참조 자료형은 값 자체가 아니라
값이 저장된 메모리 주소를 저장한다.
참조 자료형에는 String 외에도
배열, 클래스, 인터페이스 등이 있으며
이에 대해서는 이후 장에서 설명한다.
print()와 println()은 내용을 그대로 출력하지만,
형식을 지정해서 출력하고 싶을 때는 printf()를 사용한다.
System.out.printf("서식 지정자", 값);
서식 지정자는 큰따옴표 안에 작성하며,
뒤에 오는 값이 지정된 형식에 맞게 출력된다.
| 서식 지정자 | 출력 형태 |
|---|---|
| %d | 정수 |
| %f | 실수 |
| %c | 문자 |
| %s | 문자열 |
| %b | 논리형 |
| %n | 줄 바꿈 |
| %% | % 기호 |
System.out.printf("이름: %s ","코천이");
System.out.printf("나이: %d ",21);
System.out.printf("취미: %s","코딩");
printf()는 기본적으로 줄을 바꾸지 않으므로,
줄 바꿈을 원하면 %n 또는 \n을 사용한다.
System.out.printf("이름: %s%n나이: %d%n취미: %s",
"코천이",21,"코딩");
서식 지정자 뒤에 숫자나 플래그를 붙여
출력 모양을 조절할 수 있다.
| 플래그 | 설명 |
|---|---|
| 없음 | 오른쪽 정렬, 빈자리는 공백 |
| - | 왼쪽 정렬 |
| 0 | 빈자리를 0으로 채움 |
| , | 천 단위 구분 기호 |
System.out.printf("%07d%n",11111);
System.out.printf("%,7d%n",11111);
System.out.printf("%.4f",123.45f);
printf()를 사용하면 형식에 맞게 출력 가능
최고의 자바스터디장님ㅁ!!!!!