[자바 #2] 자바 기본 데이터 타입과 형 변환

도경원's avatar
Aug 21, 2025
[자바 #2] 자바 기본 데이터 타입과 형 변환
자바소스파일명과 변수명은 camel 케이스로 해야함
 
정수 타입은 총 5개.
byte, short, char, int, long → 각각 1, 2, 2, 4, 8byte.
1byte = 8bit이고,
예를들어 byte 타입은 최상위 bit를 부호 비트로 사용하고, 나머지 7bit로 값의 범위를 결정함.
프로그래머가 직접 입력한 값을 리터럴이라고 부름.
long 타입은 수치가 큰 데이터를 다루는데 int 타입의 허용범위를 초과하는 리터럴은 뒤에 소문자 ‘l’, ‘L’을 붙여 long타입 값임을 컴파일러에게 알려 줘야함.
long var1 = 10; long var2 = 20L; long var3 = 1000000000000; // 컴파일러는 int로 간주하기 때문에 에러 발생 long var4 = 1000000000000;
 
char 타입은 작은따옴표로 감싼 한 개의 문자이다. char 타입은 초기화 시에 ‘ ‘; 공백을 둬야한다.
 
실수타입은 float, double 두개 있다.
 
논리타입은 참과 거짓을 의미하고, 논리 리터럴은 true, false 이다.
boolean stop = true; boolean stop = false;
 
문자열 타입 큰 따옴표로 감싼 여러 개의 문자들을 문자열이라고 부른다. String 타입을 이용한다.
String var1 = "A"; String var2 = "홍길동";
String 타입은 자바 기본 타입에 속하지 않는 참조 타입이다.
이스케이프 문자(역슬래쉬, \) 이다.
→ \”, \’, \\, \t, \n, \r 등이 있음
Java 13부터 텍스트 블록 문법 가능
String str = """ ...... """
 
자동 타입 변환
큰 허용 범위 타입 = 작은 허용 범위 타입
자동으로 큰 허용 범위 타입으로 변환된다.
허용 범위 순
byte < short, char < int < long < float < double
강제 타입 변환
작은 혀용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입
작은 허용 범위 타입으로 자동 타입 변환될 수 는 없지만, 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어서 저장하는 것은 가능하다. 이를 강제 타입 변환(casting, 캐스팅)이라고 한다. 강제 타입의 목적은 원래 값이 유지되어야 한다. 작은 허용 범위 타입에 저장될 수 있는 값을 가지고 강제 타입 변환을 해야한다. 그렇지 않으면 원래 값이 보존되지 않는다.
long longValue = 300; int intValue = (int) longValue; // 강제 타입 변환 후에 300dl 그대로 유지
int intValue = 65; char charValue = (char) intValue; System.out.println(charValue); // 'A'가 출력

📌 자바 기본 데이터 타입과 형 변환 완벽 정리

1. 자바 명명 규칙

  • 클래스명, 소스파일명 → PascalCase
  • 변수명, 메서드명 → camelCase

2. 기본 데이터 타입 (Primitive Type)

자바의 기본 타입은 총 8가지.
분류
타입
크기(byte)
설명
정수 타입
byte
1
-128 ~ 127
short
2
-32,768 ~ 32,767
char
2
유니코드 문자(0 ~ 65,535)
int
4
기본 정수 타입
long
8
큰 정수 범위
실수 타입
float
4
소수점 7자리 정도
double
8
소수점 15자리 정도 (기본)
논리 타입
boolean
1
true / false

정수 타입

long var1 = 10; // OK long var2 = 20L; // OK (L 붙여줌) long var3 = 1000000000000; // ❌ 컴파일 에러 (int로 간주) long var4 = 1000000000000L; // OK
  • 리터럴(literal) : 프로그래머가 직접 입력한 값
  • long 리터럴은 반드시 **L(l)**을 붙여야 한다.

문자 타입 (char)

  • 작은따옴표(' ')로 감싼 한 문자
  • 반드시 초기화 시 ' ' 공백 포함
char c1 = 'A'; char c2 = '한';

실수 타입

  • float, double 존재
  • double이 기본, 더 큰 정밀도를 제공

논리 타입

boolean stop = true; boolean start = false;
  • 조건문, 제어문에서 많이 사용

문자열 타입 (String)

  • 큰따옴표(" ")로 감싼 문자열
  • 기본 타입이 아닌 참조 타입
String name = "홍길동";

텍스트 블록 (Java 13+)

String str = """ 여러 줄 문자열 가능하다 """;

3. 이스케이프 문자

문자
의미
\"
큰따옴표
\'
작은따옴표
\\
역슬래시
\t
\n
줄바꿈
\r
캐리지 리턴

4. 타입 변환

자동 타입 변환 (Promotion)

  • 작은 허용 범위 → 큰 허용 범위로 자동 변환됨
byteshort/charintlongfloatdouble

강제 타입 변환 (Casting)

  • 큰 타입을 작은 타입으로 쪼개 저장
  • 원래 값이 손실될 수도 있음
long longValue = 300; int intValue = (int) longValue; // 300 유지 int num = 65; char c = (char) num; System.out.println(c); // 'A'
Share article

Gyeongwon's blog