프로그램에서 데이터를 보관하는 메모리 공간인 **변수(Variable)**와 데이터의 종류를 규정하는 자료형(Data Type), 그리고 키보드 입력을 처리하는 Scanner를 배웁니다.
1. 기본 프로그래밍 용어 사전 (Glossary)
- Primitive Type (기본 자료형): 실제 산술/논리 데이터 값을 메모리 스택 영역에 직접 저장하는 8가지 기본 타입입니다.
- Reference Type (참조 자료형): 데이터 객체의 실제 본체는 Heap 영역에 저장하고, 변수 스택에는 메모리 주소(Address)만을 보관하는 타입입니다. (String, Array 등)
- Scanner:
java.util패키지에 포함되어 키보드로 입력한 문자열, 정수, 실수 데이터를 편리하게 읽어들이는 입출력 클래스입니다. - Casting (형변환): 변수나 리터럴의 데이터 타입을 다른 타입으로 변환하는 연산입니다. (자동 형변환 vs 강제 형변환)
2. 자바 8대 기본 자료형 (Primitive Types) 스펙표
| 데이터 종류 | 자료형 키워드 | 메모리 크기 | 데이터 표현 범위 및 리터럴 예시 |
|---|---|---|---|
| 논리형 | boolean |
1 byte | true 또는 false |
| 문자형 | char |
2 bytes | 유니코드(Unicode) 1문자 (예: 'A', '가') |
| 정수형 | byte |
1 byte | $-128 \sim 127$ |
short |
2 bytes | $-32,768 \sim 32,767$ | |
int |
4 bytes | $-21\text{억} \sim 21\text{억}$ (기본 정수형) | |
long |
8 bytes | $-9 \times 10^{18} \sim 9 \times 10^{18}$ (예: 100L) |
|
| 실수형 | float |
4 bytes | 소수점 약 7자리 정밀도 (예: 3.14F) |
double |
8 bytes | 소수점 약 15자리 정밀도 (기본 실수형) |
3. Scanner 키보드 입력 및 연산자 실습
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.next(); // 문자열 입력
System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt(); // 정수 입력
System.out.print("키(cm)를 입력하세요: ");
double height = scanner.nextDouble(); // 실수 입력
System.out.println("
=== [사용자 프로필] ===");
System.out.println("이름: " + name);
System.out.println("나이: " + age + "세 (" + ((age >= 19) ? "성인" : "미성년자") + ")");
System.out.println("키: " + height + "cm");
scanner.close(); // Scanner 리소스 닫기
}
}
4. 자주 묻는 질문 (Q&A)
Q. scanner.nextLine()과 scanner.next()의 차이는 무엇인가요?
A. next()는 공백(스페이스/탭)을 기준으로 단어 하나만 읽어들이고, nextLine()은 엔터( )를 칠 때까지 공백을 포함한 한 줄 전체 문장을 읽어옵니다.