목차
1. 데이터 타입의 중요성
- Java는 **강타입 언어(strongly typed language)**다.
- 변수, 값, 표현식마다 **타입(type)**이 명확히 있어야 한다.
- 타입 불일치 오류는 컴파일 단계에서 바로 걸린다.
- 무타입 변수 따위는 존재하지 않는다.
➔ 결과:
타입 체크 덕분에 프로그램 신뢰성과 안전성이 높아진다.
2. Java의 8개 기본(Primitive) 타입

➔ 주의:
- Java는 unsigned 타입 없음 (모든 정수는 signed).
- 플랫폼 독립성을 위해 각 타입의 범위가 엄격히 고정되어 있다.
3. 변수와 리터럴 (Literal)
리터럴 (Literal)
- 리터럴 = 고정된 값. (예: 100, 'a', 3.14)
- 정수 리터럴 기본 타입은 int, 실수는 double이다.
- 접미사로 타입 지정 가능:
- 123L → long
- 3.14F → float
- JDK 7부터는 리터럴 안에 _(언더스코어) 허용해서 가독성 향상 가능:
- 예: 123_456_789
초기화(Initialization):
변수에 '처음' 값을 설정하는 행위

동적 초기화(Dynamic Initialization):
변수를 선언할 때 단순한 상수 대신 "계산 결과"나 "다른 변수의 값"으로 초기화

변수의 범위(Scope)와 생명주기(Lifetime)
- 변수가 선언된 블록에 들어갈 때 메모리에 할당되고,
- 블록을 빠져나오면 메모리에서 자동 삭제된다.
- 블록마다 변수 재선언 금지. (같은 이름 재사용 불가)
ㅡ> 바깥 블록에서 선언한 변수 이름을 안쪽 블록에서 다시 사용할 수 없다.
4. 연산자 (Operators)
산술 연산자

- % 연산자는 정수형뿐 아니라 실수형에도 적용 가능하다.
증감 연산자

주의:
- ++x (전위) → 먼저 증가하고 사용
- x++ (후위) → 사용하고 나서 증가
관계(비교) 연산자

➔ 결과는 항상 boolean 타입이다.
논리 연산자

➔ 논리 연산 결과도 boolean 타입이다.
대입 연산자와 복합 대입 연산자
- = : 값 대입
- 복합 대입 연산자 (Shorthand Assignment)
- +=, -=, *=, /=, %=, &=, |=, ^=
- 예시: x += 10; 는 x = x + 10;과 같다.
5. 타입 변환 (Type Conversion)
자동 타입 변환 (Widening Conversion)
- 작은 타입 → 큰 타입 자동 변환 가능.
- ex: byte → int, int → long, long → float
강제 타입 변환 (Casting)
- 타입이 호환되지 않으면 캐스팅 필요.
- 문법: (타겟타입) 값
- ex:
int i;
double d = 3.14;
i = (int) d; // 강제 변환
주의:
캐스팅은 데이터 손실 위험이 있다
6. 표현식(Expression)과 타입 승격(Type Promotion)
- byte/short/char 연산 시 int로 승격 후 연산된다.
- 혼합 타입 연산 시, 더 큰 타입으로 자동 승격된다.

'언어 > Java' 카테고리의 다른 글
4. Classes, Objects, and Methods (0) | 2025.05.01 |
---|---|
3: Program Control Statements (0) | 2025.04.28 |
1장 Java Fundamentals (0) | 2025.04.28 |
Java 변수 종류 (0) | 2025.04.27 |
Java 스트림 API (0) | 2025.03.17 |
1. 데이터 타입의 중요성
- Java는 **강타입 언어(strongly typed language)**다.
- 변수, 값, 표현식마다 **타입(type)**이 명확히 있어야 한다.
- 타입 불일치 오류는 컴파일 단계에서 바로 걸린다.
- 무타입 변수 따위는 존재하지 않는다.
➔ 결과:
타입 체크 덕분에 프로그램 신뢰성과 안전성이 높아진다.
2. Java의 8개 기본(Primitive) 타입

➔ 주의:
- Java는 unsigned 타입 없음 (모든 정수는 signed).
- 플랫폼 독립성을 위해 각 타입의 범위가 엄격히 고정되어 있다.
3. 변수와 리터럴 (Literal)
리터럴 (Literal)
- 리터럴 = 고정된 값. (예: 100, 'a', 3.14)
- 정수 리터럴 기본 타입은 int, 실수는 double이다.
- 접미사로 타입 지정 가능:
- 123L → long
- 3.14F → float
- JDK 7부터는 리터럴 안에 _(언더스코어) 허용해서 가독성 향상 가능:
- 예: 123_456_789
초기화(Initialization):
변수에 '처음' 값을 설정하는 행위

동적 초기화(Dynamic Initialization):
변수를 선언할 때 단순한 상수 대신 "계산 결과"나 "다른 변수의 값"으로 초기화

변수의 범위(Scope)와 생명주기(Lifetime)
- 변수가 선언된 블록에 들어갈 때 메모리에 할당되고,
- 블록을 빠져나오면 메모리에서 자동 삭제된다.
- 블록마다 변수 재선언 금지. (같은 이름 재사용 불가)
ㅡ> 바깥 블록에서 선언한 변수 이름을 안쪽 블록에서 다시 사용할 수 없다.
4. 연산자 (Operators)
산술 연산자

- % 연산자는 정수형뿐 아니라 실수형에도 적용 가능하다.
증감 연산자

주의:
- ++x (전위) → 먼저 증가하고 사용
- x++ (후위) → 사용하고 나서 증가
관계(비교) 연산자

➔ 결과는 항상 boolean 타입이다.
논리 연산자

➔ 논리 연산 결과도 boolean 타입이다.
대입 연산자와 복합 대입 연산자
- = : 값 대입
- 복합 대입 연산자 (Shorthand Assignment)
- +=, -=, *=, /=, %=, &=, |=, ^=
- 예시: x += 10; 는 x = x + 10;과 같다.
5. 타입 변환 (Type Conversion)
자동 타입 변환 (Widening Conversion)
- 작은 타입 → 큰 타입 자동 변환 가능.
- ex: byte → int, int → long, long → float
강제 타입 변환 (Casting)
- 타입이 호환되지 않으면 캐스팅 필요.
- 문법: (타겟타입) 값
- ex:
int i;
double d = 3.14;
i = (int) d; // 강제 변환
주의:
캐스팅은 데이터 손실 위험이 있다
6. 표현식(Expression)과 타입 승격(Type Promotion)
- byte/short/char 연산 시 int로 승격 후 연산된다.
- 혼합 타입 연산 시, 더 큰 타입으로 자동 승격된다.

'언어 > Java' 카테고리의 다른 글
4. Classes, Objects, and Methods (0) | 2025.05.01 |
---|---|
3: Program Control Statements (0) | 2025.04.28 |
1장 Java Fundamentals (0) | 2025.04.28 |
Java 변수 종류 (0) | 2025.04.27 |
Java 스트림 API (0) | 2025.03.17 |