[SeSACx코딩온] Java의 기본 타입과 참조 타입
Java의 기본 데이터 타입과 참조 타입
1. 기본 데이터 타입 (Primitive Type)
기본 데이터 타입은 Java에서 가장 기본적으로 제공되는 데이터 타입으로, 객체가 아닌 비객체 타입입니다. 이 타입들은 null 값을 가질 수 없으며 반드시 사용되기 전에 선언되어야 합니다.
public class DataTypes {
public static void main(String[] args) {
// 정수형 변수 선언
int x = 10; // 32bit
long y = 1000000000L; // 64bit, long 타입은 'L' 혹은 'l'을 붙여야 함
short z = 32767; // 16bit
byte b = 127; // 8bit
// 실수형 변수 선언
float a = 3.14F; // 32bit, float 타입은 'F' 혹은 'f'를 붙여야 함
double c = 2.71828; // 64bit
// 문자형 변수 선언
char ch = 'A'; // 작은따옴표 사용
// 논리형 변수
boolean bool = true;
// 변수 출력
System.out.println("정수형 변수: " + x + ", " + y + ", " + z + ", " + b);
System.out.println("실수형 변수: " + a + ", " + c);
System.out.println("문자형 변수: " + ch);
System.out.println("논리형 변수: " + bool);
}
}
1) 정수형 (Integer Types)
- int: 32비트 정수형 타입.
- long: 64비트 정수형 타입으로, 값 뒤에 ‘L’ 혹은 ‘l’을 붙여야 합니다. (
long y = 1000000000L;
) - short: 16비트 정수형 타입입니다. (범위는
-32768
에서32767
까지) - byte: 8비트 정수형 타입입니다. (범위는
-128
에서127
까지)
2) 실수형 (Floating-Point Types)
- float: 32비트 부동소수점 타입으로, 값 뒤에 ‘F’ 혹은 ‘f’를 붙여야 합니다. (
float a = 3.14F;
) - double: 64비트 부동소수점 타입으로, 일반적으로 소수점 숫자를 다룰 때 사용됩니다.
3) 문자형 (Character Type)
- char: 16비트 유니코드 문자형으로, 작은 따옴표 ’ ‘ 안에 문자를 넣어 선언합니다. (
char ch = 'A';
)
4) 논리형 (Boolean Type)
- boolean:
true
또는false
값을 가질 수 있는 타입입니다.
2. 참조 데이터 타입 (Reference Type)
참조형 데이터 타입은 모든 기본형 이외의 타입을 의미하며, Java의 모든 참조형 데이터 타입은 java.lang.Object 클래스를 상속받습니다. 이들은 null 값을 가질 수 있으며, 객체나 배열과 같은 데이터를 다룰 때 사용됩니다.
public class DataTypes {
public static void main(String[] args) {
// 참조형 타입 선언
String greeting = "Hello, World!"; // 참조형이지만 기본형처럼 사용
int[] numbers = {1, 2, 3, 4, 5};
Person person = new Person("John", 30);
// 참조형 변수 출력
System.out.println("String 변수: " + greeting);
System.out.println("배열 변수: ");
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
System.out.println("Person 객체: " + person.getName() + ", " + person.getAge());
}
}
// 사용자 정의 클래스
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
1) String 타입
- String은 Java에서 특별한 참조형 타입으로, 문자열을 다룰 때 사용합니다. String은 참조형이지만 마치 기본형처럼 다루어지며,
String greeting = "Hello, World!";
와 같이 선언할 수 있습니다.
2) 배열 (Array)
- 배열은 참조형 타입으로, 같은 타입의 데이터를 저장하는 구조입니다.
int[] numbers = {1, 2, 3, 4, 5};
와 같이 선언하며, 배열의 요소에 접근할 때는 인덱스를 사용합니다.
3) 사용자 정의 클래스 (Custom Class)
- Person과 같은 클래스는 참조형 타입으로, 객체 지향적으로 데이터를 다룰 때 사용됩니다. 위 코드에서
Person person = new Person("John", 30);
와 같이 객체를 생성할 수 있습니다.
3. Primitive Type과 Reference Type의 차이점
- 메모리 저장 방식: 기본형은 실제 값을 메모리에 저장하지만, 참조형은 객체의 주소값을 저장합니다.
- null 값: 기본형은 null 값을 가질 수 없으며, 참조형은 null 값을 가질 수 있습니다.
- 초기화: 기본형은 선언 즉시 초기화되지만, 참조형은 명시적으로 new 키워드를 사용해 초기화해야 합니다.