1. 오늘 학습 주제
Java에서 가장 기본이 되는 리터럴(literal)과 자료형, 그리고 연산 방식을 학습했다.
단순 출력이 아니라
- 자료형별 표현 방식
- 문자 vs 문자열 차이
- 연산 시 타입 변화
- 내부 동작 방식
까지 이해하는 데 집중했다.
2. 전체 개념 흐름
리터럴 → 자료형 → 연산 → 결과 타입 변화
- 리터럴: 코드에 직접 작성한 값
- 자료형: 값의 종류
- 연산: 값과 값의 계산
- 결과: 타입에 따라 달라짐
3. 리터럴(Literal)이란?
리터럴은 코드에 직접 작성된 값이다.
System.out.println(123);
System.out.println(1.23);
System.out.println('a');
System.out.println("안녕하세요");
System.out.println(true);
종류
타입예시
| 정수 | 123 |
| 실수 | 1.23 |
| 문자 | 'a' |
| 문자열 | "hello" |
| 논리 | true / false |
4. 문자 vs 문자열 (핵심 차이)
이 부분이 가장 중요하다.
System.out.println('a'); // 문자
System.out.println("a"); // 문자열
차이
구분문자문자열
| 기호 | ' ' | " " |
| 길이 | 1개만 가능 | 여러 개 가능 |
| 타입 | char | String |
에러 사례
System.out.println('ab'); // 에러
System.out.println(''); // 에러
→ char는 반드시 1개 문자만 가능
5. 숫자 연산
정수 연산
System.out.println(123 + 456);
System.out.println(123 - 456);
System.out.println(123 * 456);
System.out.println(123 / 456);
System.out.println(123 % 456);
특징
- / → 몫 (정수 나눗셈)
- % → 나머지
실수 연산
System.out.println(1.12 + 1.23);
→ 소수점 포함 계산
정수 + 실수
System.out.println(123 + 0.23);
→ 결과는 무조건 실수
이유
- 더 큰 범위 타입으로 자동 변환 (형 변환)
6. 문자 연산 (중요 개념)
System.out.println('a' + 'b');
이 결과는 문자열이 아니라 숫자다.
이유
- char는 내부적으로 숫자 (유니코드)
- 'a' → 97
- 'b' → 98
→ 결과: 195
7. 문자열 연산
System.out.println("hello" + "world");
→ 결과: "helloworld"
특징
- + 연산 = 문자열 연결
문자열 + 다른 타입
System.out.println("hello" + 123);
System.out.println("hello" + 'a');
→ 결과는 모두 문자열
핵심 규칙
👉 문자열이 하나라도 있으면 결과는 무조건 문자열
8. 논리값 연산
// System.out.println(true + false); // 불가능
특징
- boolean은 연산 불가능
- 오직 문자열과만 결합 가능
System.out.println(true + "a");
→ "truea"
9. 오늘 배운 핵심 규칙 정리
1. 리터럴은 값 그 자체다
- 코드에 직접 작성된 데이터
2. 문자 vs 문자열은 완전히 다르다
- 'a' ≠ "a"
3. 연산 결과는 타입에 따라 달라진다
연산결과
| int + int | int |
| int + double | double |
| char + char | int |
| String + anything | String |
4. 문자열은 최우선이다
String + 모든 타입 → String
5. char는 사실 숫자다
→ 유니코드 기반으로 동작
10. 오늘의 핵심 인사이트
단순 출력이 아니라 Java가 값을 어떻게 해석하고 계산하는지를 이해한 날이었다.
특히 중요한 포인트는:
- 자료형이 연산 결과를 결정한다
- 문자열이 개입되면 모든 게 문자열이 된다
- char는 문자처럼 보이지만 내부적으로 숫자다
11. 한 줄 정리
Java에서 연산을 제대로 이해하려면 값이 아니라 “타입” 기준으로 생각해야 한다.
'TIL > [TIL]' 카테고리의 다른 글
| [TIL]Java 제어문과 배열 (0) | 2026.04.30 |
|---|---|
| [TIL]Java 기초 문법, 연산자, 메서드와 패키지/임포트 (0) | 2026.04.29 |
| [TIL]Mini Cart 프로젝트, json-server, API Layer 분리, Zustand persist (0) | 2026.04.28 |
| [TIL]React Query, json-server, Zustand persist, CRUD 테스트 (0) | 2026.04.24 |
| [TIL]Zustand를 활용한 전역 상태 관리와 Immer 개요 (0) | 2026.04.24 |