자바(Java)에서 변수와 데이터 타입은 프로그래밍의 기초 중 하나입니다. 이 글에서는 변수 선언과 초기화, 그리고 자바에서 사용되는 다양한 데이터 타입에 대해 알아보겠습니다. 특히 코드 예시와 함께 설명하여, 누구나 쉽게 이해하고 실습할 수 있도록 구성했습니다.
1. 변수란?
변수란 프로그램이 실행되는 동안 값을 저장하는 메모리 공간을 의미합니다. 변수의 값은 프로그램 실행 중에 언제든지 바뀔 수 있으며, 각 변수는 하나의 값과 특정 데이터 타입을 가집니다.
- 변수의 특징
- 하나의 값만 저장할 수 있음.
- 한 가지 타입의 값만 저장할 수 있음.
- 변수에 값을 저장하는 행위를 초기화라고 부릅니다.
변수 선언 방법
<데이터타입> <변수이름>;
- 같은 타입의 변수는 콤마(,)를 이용해 한꺼번에 선언할 수 있습니다.
- 예시:
int a, b, c;
변수 선언과 초기화 예시
int num = 10; // 변수 선언과 초기화
System.out.println(num); // 10
2. 데이터 타입
자바에서 변수는 다양한 데이터 타입을 가질 수 있습니다. 기본적으로 크게 정수형, 실수형, 논리형, 문자형 데이터 타입으로 나뉩니다.
정수형 데이터 타입
타입 | 크기 | 값의 범위 |
---|---|---|
byte | 1바이트 | -128 ~ 127 |
short | 2바이트 | -32,768 ~ 32,767 |
int | 4바이트 | -2,147,483,648 ~ 2,147,483,647 |
long | 8바이트 | 매우 큰 값 (L을 붙임) |
실수형 데이터 타입
타입 | 크기 | 설명 |
---|---|---|
float | 4바이트 | 소수점 이하 7자리 정도의 값 저장 (F를 붙임) |
double | 8바이트 | 소수점 이하 15자리 정도의 값 저장 |
논리형 데이터 타입
타입 | 크기 | 설명 |
---|---|---|
boolean | 1바이트 | true 또는 false 저장 |
문자형 데이터 타입
타입 | 크기 | 설명 |
---|---|---|
char | 2바이트 | 한 글자를 저장 (유니코드 지원) |
String | 그때그때 다름 | 문자열 저장 (큰 따옴표로 표현) |
3. 코드 예시: 데이터 타입 활용
public class DataTypeEX {
public static void main(String[] args) {
// 정수형 변수 선언 및 초기화
byte a = 127;
short b = 32767;
int c = 2147483647;
long d = 123123123123L; // long 타입 값 저장 시 'L' 필요
// 실수형 변수 선언 및 초기화
float f = 3.14F; // float 타입 값 저장 시 'F' 필요
double d1 = 3.141592653;
// 논리형 변수 선언 및 초기화
boolean bool = true;
// 문자형 변수 선언 및 초기화
char ch = 'A';
String str = "Hello, Java!";
System.out.println("정수형 값: " + a + ", " + b + ", " + c + ", " + d);
System.out.println("실수형 값: " + f + ", " + d1);
System.out.println("논리형 값: " + bool);
System.out.println("문자형 값: " + ch + ", " + str);
}
}
4. 변수의 범위와 유효성
변수는 선언된 블록(중괄호 {}
) 안에서만 유효합니다. 이를 변수의 스코프(Scope)라고 부릅니다.
변수 범위 예시
public class VariableScope {
public static void main(String[] args) {
int num = 100;
if (true) {
int num1 = 10; // 이 변수는 if 블록 내에서만 유효
System.out.println(num1); // 출력 가능
}
// System.out.println(num1); // 에러 발생: num1은 if 블록 밖에서 사용 불가
}
}
5. 형 변환(Type Casting)
자바에서는 데이터 타입이 다른 값들 간의 변환이 필요할 때가 있습니다. 이를 형 변환이라고 하며, 자동 형 변환과 명시적 형 변환으로 나눕니다.
1) 자동 형 변환 (Promotion)
작은 크기의 데이터 타입을 큰 크기의 데이터 타입으로 변환할 때는 자바가 자동으로 형 변환을 처리합니다.
byte a = 10;
int b = a; // byte -> int 자동 형 변환
2) 명시적 형 변환 (Casting)
큰 크기의 데이터 타입을 작은 크기의 데이터 타입으로 변환할 때는 명시적으로 형 변환을 지정해야 합니다.
int i = 100;
byte b = (byte) i; // 명시적 형 변환
형 변환 예시 코드
public class CastingEx01 {
public static void main(String[] args) {
int i = 70;
char c = (char) i; // 명시적 형 변환
System.out.println(c); // 출력: 'F'
}
}
6. 연산과 형 변환
자바에서는 연산 시에도 형 변환이 일어납니다. 작은 데이터 타입들 간의 연산 결과는 int 타입이 기본입니다. 예를 들어 byte + byte
연산 결과는 int
로 변환됩니다.
연산 시 형 변환 예시
public class CastingEx03 {
public static void main(String[] args) {
char c = 'A';
int i = 2;
System.out.println(c + i); // 출력: 67 (char 'A'는 65이므로)
double d = 3.14;
System.out.println(i + d); // 출력: 5.14 (int와 double 연산 결과는 double)
}
}
7. 정리
- 변수는 데이터를 저장하는 공간이며, 값이 실행 중에 변경될 수 있습니다.
- 자바는 여러 데이터 타입을 제공하며, 변수는 한 가지 타입만 저장할 수 있습니다.
- 형 변환은 데이터 타입 간의 변환을 의미하며, 자동 형 변환과 명시적 형 변환으로 나뉩니다.
- 연산 시에는 작은 타입끼리의 연산도 int 타입으로 변환됩니다.
'🗄️ Backend > Java' 카테고리의 다른 글
JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection) (1) | 2024.10.10 |
---|---|
JAVA 패키지와 객체지향 개념 정리 (0) | 2024.10.10 |
JAVA 메서드와 객체지향 프로그래밍 (0) | 2024.10.10 |
JAVA 배열과 제어문(반복문) 정리 (0) | 2024.10.10 |
JAVA 연산자 총정리: 개념부터 예제까지! (3) | 2024.10.10 |