자료형(data type)
임논리형(boolean)
, 문자형(char)
, 정수형(byte, short, int, long)
, 실수형(float, double)
등이 있으며, 변수 선언 시 저장하려는 값의 특성을 고려하여 알맞는 자료형을 변수의 타입으로 선택기본형(primitive type) 변수
❓
실제 값(data)을 저장. 모두 8개
참조형(reference type) 변수
❓
어떤 값이 저장되어 있는 주소(memory address)(객체의 주소, 4byte 정수)를 값으로 가짐. 8개의 기본형을 제외한 나머지 타입
자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수임
✅ boolean은 true와 false 두 가지 값만 표현할 수 있으면 되므로 가장 작은 크기인 1byte
✅char은 자바에서 유니코드(2byte 문자체계)를 사용하므로 2byte
✅byte는 크기가 1byte라서 byte
✅int(4byte)를 기준으로 짧아서 short(2byte), 길어서 long(8byte)
✅float는 실수값을 부동소수점(floating-point)방식으로 저장하기 때문에 floa
✅double은 float보다 두 배의 크기(8byte)를 갖기 때문에 double
값의 범위를 외울 필요는 없고, 정수형(byte, shoort, int, long)의 경우 '-2^n-1~2^n-1-1'(n은 bit수)라는 정도만 기억
💡 예를 들어, int타입의 변수는 대략 10자리 수(약 ±20억)의 값을 저장할 수 있으며,
7~9자리의 수를 계산할 때 넉넉히 long타입(약 19자리)으로 변수 선언하는 것이 좋음
println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력 불가
printf()
를 사용'지시자(specifier)'
를 통해 변수의 값을 여러가지 형식으로 변환하여 출력하는 기능을 가짐값이 2개
라면, 지시자도 2개
를 사용(출력값과 지시자의 개수의 제한 없음)(출력될 값과 지시자의 순서는 일치)ex
<%d 사용>
System.out.printf("age:%d", age); //이 줄만 쓰고자하면 int age 선언필요
→System.out.printf("age:%d", 14); //"age:14"가 화면에 출력
→System.out.printf("age:14"); //"age:14"가 화면에 출력
System.out.printf("age:%d year:%d", age, year);
System.out.printf("age:%d year:%d", 14, 22); //"age:14 year:22"출력
<%n사용>
System.out.printf("age:%d", age); //출력 후 줄바꿈X
System.out.printf("age:%d%n", age); //출력 후 줄바꿈O