반응형
자바(Java)에는 다양한 데이터 타입이 있으며, 이를 통해 변수에 저장할 수 있는 값의 유형을 정의할 수 있습니다. 자바의 데이터 타입은 크게 기본 데이터 타입(primitive data types)과 참조 데이터 타입(reference data types)으로 나뉩니다. 각 타입은 메모리 사용량, 저장할 수 있는 값의 범위 및 용도에 따라 다릅니다.
1. 기본 데이터 타입 (Primitive Data Types)
기본 데이터 타입은 자바의 가장 기본적인 데이터 유형으로, 각 타입은 메모리 상의 특정 크기를 차지합니다. 자바는 8가지의 기본 데이터 타입을 제공합니다.
정수 타입 (Integer Types):
byte
:- 크기: 1바이트 (8비트)
- 값의 범위: -128 ~ 127
- 사용 예: 메모리 절약이 필요한 경우 또는 파일이나 네트워크에서의 데이터 처리를 위한 바이트 수준의 작업
byte smallNumber = 100;
short
:- 크기: 2바이트 (16비트)
- 값의 범위: -32,768 ~ 32,767
- 사용 예: 메모리 절약이 중요한 곳에서
int
타입보다 큰 정수를 사용할 때short mediumNumber = 32000;
int
:- 크기: 4바이트 (32비트)
- 값의 범위: -2,147,483,648 ~ 2,147,483,647
- 사용 예: 일반적인 정수 연산, 루프 카운터, 인덱스 등
int number = 123456;
long
:- 크기: 8바이트 (64비트)
- 값의 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
- 사용 예: 아주 큰 정수 값을 다루어야 할 때
long largeNumber = 123456789012345L;
부동 소수점 타입 (Floating-Point Types):
float
:- 크기: 4바이트 (32비트)
- 값의 범위: 대략 ±1.4E-45 ~ ±3.4E38 (정밀도 약 7자리)
- 사용 예: 소수점 이하의 작은 범위의 실수 값, 그래픽스 프로그래밍, 과학적 계산 등
float pi = 3.14f;
double
:- 크기: 8바이트 (64비트)
- 값의 범위: 대략 ±4.9E-324 ~ ±1.8E308 (정밀도 약 15자리)
- 사용 예: 더 큰 범위의 실수 값, 금융 계산 등
double e = 2.718281828459045;
문자 타입 (Character Type):
char
:- 크기: 2바이트 (16비트, 유니코드 지원)
- 값의 범위: '\u0000' (0) ~ '\uffff' (65,535)
- 사용 예: 단일 문자 저장, 유니코드 문자 지원
char letter = 'A';
논리 타입 (Boolean Type):
boolean
:- 크기: 1비트 (사실상, 자바는
boolean
의 크기를 명시적으로 정의하지 않음) - 값의 범위:
true
또는false
- 사용 예: 조건 분기, 논리 연산
boolean isJavaFun = true;
- 크기: 1비트 (사실상, 자바는
2. 참조 데이터 타입 (Reference Data Types)
참조 데이터 타입은 객체의 참조(주소)를 저장하며, 자바의 다양한 데이터 구조와 클래스들을 나타낼 수 있습니다.
주요 참조 데이터 타입:
- 클래스 (Class)
- 사용 예: 사용자 정의 객체, 자바 API 클래스의 인스턴스 등
String text = "Hello, World!"; MyClass myObject = new MyClass();
- 사용 예: 사용자 정의 객체, 자바 API 클래스의 인스턴스 등
- 인터페이스 (Interface)
- 사용 예: 인터페이스의 구현체를 참조할 때
List<String> list = new ArrayList<>();
- 사용 예: 인터페이스의 구현체를 참조할 때
- 배열 (Array)
- 사용 예: 동일한 타입의 여러 값들을 저장할 때
int[] numbers = {1, 2, 3, 4, 5};
- 사용 예: 동일한 타입의 여러 값들을 저장할 때
- 열거형 (Enum)
- 사용 예: 제한된 상수 집합을 나타낼 때
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } Day today = Day.MONDAY;
- 사용 예: 제한된 상수 집합을 나타낼 때
기본 데이터 타입과 참조 데이터 타입의 차이점
- 저장되는 값:
- 기본 데이터 타입은 실제 값을 직접 저장합니다.
- 참조 데이터 타입은 객체의 메모리 주소를 저장합니다.
- 메모리 사용:
- 기본 데이터 타입은 고정된 크기의 메모리를 사용합니다.
- 참조 데이터 타입은 객체의 실제 크기에 따라 메모리 사용량이 달라집니다.
- 기본값:
- 기본 데이터 타입은 기본값을 가질 수 있으며, 예를 들어
int
는 0,boolean
은 false입니다. - 참조 데이터 타입은
null
로 초기화될 수 있습니다.
- 기본 데이터 타입은 기본값을 가질 수 있으며, 예를 들어
- 메모리 위치:
- 기본 데이터 타입은 스택 메모리에 저장됩니다.
- 참조 데이터 타입은 힙 메모리에 저장된 객체의 참조를 스택 메모리에 저장합니다.
변수 타입 사용 예
자바 코드에서 기본 데이터 타입과 참조 데이터 타입을 사용하는 예제는 다음과 같습니다:
public class VariableExample {
public static void main(String[] args) {
// 기본 데이터 타입
int age = 25;
double height = 5.9;
boolean isStudent = false;
char grade = 'A';
// 참조 데이터 타입
String name = "Alice";
int[] scores = {95, 82, 78, 88, 91};
VariableExample example = new VariableExample();
// 출력
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Height: " + height);
System.out.println("Is Student: " + isStudent);
System.out.println("Grade: " + grade);
System.out.print("Scores: ");
for (int score : scores) {
System.out.print(score + " ");
}
}
}
이 코드에서 다양한 기본 데이터 타입(int, double, boolean, char)과 참조 데이터 타입(String, 배열, 사용자 정의 클래스)이 사용되었습니다.
자바의 변수 타입에 대해 궁금한 점이 있거나 더 자세한 설명이 필요하다면 언제든지 질문해 주세요!
반응형
'언어 > Java' 카테고리의 다른 글
[ Java ] 변수 타입 간의 형변환 하기 (1) | 2024.06.09 |
---|---|
[ Java ] 가비지 컬렉션(Garbage Collection)으로 메모리 관리하기 (0) | 2024.06.09 |
[ Java ] 클래스와 변수의 이름을 지어보자. (0) | 2024.06.09 |
[ Java ] 클래스와 변수의 이름을 지어보자. (0) | 2024.06.09 |
[ Java ] Hello World! 프로그램 해보기 (0) | 2024.06.09 |