값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type)
값(data) - 문자('A', '1', "ABC")
|
숫자 - 실수(3.14, -3.0)
|
정수(123, 0, -100)
자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있으며 변수를 선언할 때는 저장하려는 값의 특성을 고려하여 가장 알맞은 자료형을 변수의 타입으로 선택하면 됨.
기본형 변수: 실제 값(data) 저장
참조형 변수: 어떤 값(data)가 저장되어 있는 주소(memory address) 저장
MI) 메모리에는 1byte 단위로 일련번호가 붙어있는데, 이 번호로 '메모리 주소(memory address)',
간단히 주소라고 한다. 객체의 주소는 객체가 저장된 메모리 주소를 뜻한다.
기본형(primitive type)
참조형(reference type)
참조형 변수(또는 참조변수)를 선언할 때 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 됨.
→ 새 클래스 작성은 새로운 참조형 추가.
참조변수를 선언하는 법
클래스이름 변수이름; //변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다.
논리형: boolean(1 byte)
문자형: char(2 byte)
정수형: byte(1 byte), short(2 byte), int(4 byte)
실수형: float(4 byte)
상수 : 변수처럼 값을 저장하는 공간이지만 값을 초기화하면 변경할 수 없다. / 상수의 이름은 모두 대문자
리터럴 : 상수에 저장되어 있는 값을 부르는 말
상수를 사용하는 이유 : 의미를 담았기에 이해하기 쉽고 값을 변경할때에도 혼란이 오지 않는다.
boolean : 없음
long: L
float : f
double : d
문자형 : 없음
문자열 : 없음
리터럴 타입은 저장될 변수의 타입과 일치해야함
타입이 달라도 저장범위가 큰것 안에 작은 것을 저장하는 것이 가능
반대로 되었을 경우는 컴파일 에러 발생
문자는 문자 하나를 ''로 감싼 것 / 문자열은 두 문자 이상을 ""로 감싼것
char 타입은 반드시 하나의 문자가 필요
String은 아무런 문자가 없는 것 허용 / empty String
덧셈 연산자로 문자열 결합 가능
→만일 숫자와 문자를 더하게 되면 숫자를 String으로 변환한 다음 결합한다.
문자열 + any type ⇒ 문자열 + 문자열 = 문자열
int age = 14;
System.out.printf("age:"%d, age);
→System.out.printf("age:"%d, 14);
→System.out.printf("age:14");
printf()는 줄바꿈을 하지 않음 줄바꿈을 하려면 %n을 넣어야 함
import java.utill.* // scanner를 사용하기 위해 추가
Scanner scanner = new Scanner(System.in); // 클래스의 클래스 객체 생성
nextLine() : 호출하면 입력 대기 상태에 있다가 입력을 마치고 엔터를 치면 입력한 내용이 문자열로 반환된다.
Integer.parseInt() : 입력받은 문자열을 int타입 정수로 변환
String input = scannse.nextLine(); //입력반은 내용을 변수에 저장
int num = Integer.parseInt(input); //입력받은 내용을 int타입의 값으로 변환