☕ Java 기초 총정리 📘
🧠 [ 자료형 기본 타입 (Primitive Data Types) ]
| 구분 | 타입 | 크기 | 범위 / 설명 | 비고 |
|---|
| 🔢 정수형 | byte | 1byte | -128 ~ +127 | |
| short | 2byte | 약 ±30,000 | |
| int | 4byte | 약 ±21억 | 정수 기본형 |
| long | 8byte | ±21억 이상 | 숫자 뒤에 L 또는 l |
| 🌊 실수형 | float | 4byte | 소수점 8자리 표현 | 숫자 뒤에 F 또는 f |
| double | 8byte | 소수점 17자리 표현 | 실수 기본형 |
| ⚙️ 논리형 | boolean | 1byte | true / false | |
| 🔤 문자형 | char | 2byte | '문자 1개' | |
| 💬 문자열 | String | 클래스 | "문자 여러개" | 클래스 타입 |
🖨️ [ 출력 함수 ]
| 함수 | 설명 |
|---|
System.out.print() | 줄바꿈 없는 출력 |
System.out.println() | 출력 후 줄바꿈 |
System.out.printf() | 형식에 맞춰 출력 (%s, %c, %d, %f) |
📏 형식 지정자 예시
| 형식 | 설명 |
|---|
%자릿수d | 지정한 자릿수만큼 확보 (공백 채움, 우측 정렬) |
%-자릿수d | 지정한 자릿수만큼 확보 (공백 채움, 좌측 정렬) |
%0자릿수d | 빈 공간을 0으로 채움 |
%전체자릿수.소수점자릿수f | 소수점 포함한 자릿수 제어 |
🔤 [ 이스케이프 문자 ]
| 문자 | 의미 |
|---|
\n | 줄바꿈 |
\t | 들여쓰기 |
\\ | 백슬래시 출력 |
\' | 작은따옴표 출력 |
\" | 큰따옴표 출력 |
☕ [ 변수의 타입변환 (Type Casting) ]
🎯 다형성(Polymorphism) : 하나의 자료가 여러 타입으로 변환될 수 있음
🔹 자동 타입변환 (묵시적)
| 변환 방향 | 설명 |
|---|
| byte → short/char → int → long → float → double | 작은 메모리 → 큰 메모리 자동 변환 |
byte b = 10;
short s = b;
int i = s;
long l = i;
float f = l;
double d = f;
System.out.println(d);
🔸 강제 타입변환 (명시적)
| 변환 방향 | 설명 |
|---|
| double → float → long → int → short/char → byte | 큰 메모리 → 작은 메모리, 손실 가능 |
double d = 3.14;
float f = (float)d;
long l = (long)f;
System.out.println(l);
⚙️ 연산 타입변환
| 연산 예시 | 결과 타입 |
|---|
| byte + byte | int |
| byte + short | int |
| int + long | long |
| int + float | float |
| int + double | double |
int result = 10 + 3.14f;
⌨️ [ 입력 함수 (Scanner) ]
| 메서드 | 반환 타입 | 설명 |
|---|
.next() | String | 문자열 입력 (공백 불가능) |
.nextLine() | String | 문자열 입력 (공백 가능) |
.nextByte() | byte | 정수 입력 |
.nextShort() | short | 정수 입력 |
.nextInt() | int | 정수 입력 |
.nextLong() | long | 정수 입력 |
.nextFloat() | float | 실수 입력 |
.nextDouble() | double | 실수 입력 |
.nextBoolean() | boolean | true/false 입력 |
.nextChar() | ❌ 없음 | 대신 scan.next().charAt(0) 사용 |
Scanner scan = new Scanner(System.in);
System.out.print("이름 입력 : ");
String name = scan.nextLine();
System.out.println("안녕하세요, " + name + "님!");
➕ [ 연산자 정리 ]
| 구분 | 연산자 | 설명 |
|---|
| 산술 | +, -, *, /, % | 사칙연산 |
| 연결 | + | 문자열 연결 |
| 비교 | >, <, >=, <=, ==, != | 논리값 반환 |
| 논리 | &&, | |
| 증감 | ++, -- | 1씩 증가/감소 |
| 복합대입 | +=, -=, *=, /=, %= | 연산 후 대입 |
| 삼항 | 조건 ? 참 : 거짓 | 조건문 대체 |
🧮 예시
int x = 10, y = -3;
System.out.println(x + y);
System.out.println(x - y);
System.out.println(x / y);
System.out.println(x % y);
💬 문자열 vs 리터럴 비교
| 구분 | 비교 방식 | 예시 | 결과 |
|---|
| 문자열 비교 | .equals() | "10".equals("10") | true |
| 리터럴 비교 | == | 10 == 10 | true |
| 잘못된 비교 | "10" == 10 | ❌ 오류 발생 | |