TIL/[TIL]

[TIL]Java Literal과 자료형 연산 이해

namerong 2026. 4. 28. 17:09

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에서 연산을 제대로 이해하려면 값이 아니라 “타입” 기준으로 생각해야 한다.