개발자 취업준비/java
[java] 자료(Data)와 자료형(Data Types)
naspeciallist
2025. 1. 30. 20:56
1. 자료(Data)와 자료형(Data Types)이란?
- 자료(data) : 자바 언어를 사용하여 프로그램을 작성 할 경우 시스템이 처리하는 대상(정수,실수,문자,문자열 등)
- 자료 형(data type) : 데이터를 사용 용도별로 구분한 것 시스템은 자료형 별로 기억장소를 할당하여 사용
자바 프로그램을 만들 때, 컴퓨터가 처리하는 값(정보)들을 자료라고 합니다. 예를 들면, 숫자(10, 3.14), 문자('A'), 문자열("Hello"), 참/거짓(true, false) 같은 것들이 자료입니다.
자료마다 크기와 쓰임새가 다르기 때문에, 자바에서는 자료의 종류를 구분해서 저장하는 방식을 정해 놓았습니다. 이렇게 데이터를 어떤 형태로 저장하고 사용할지 정한 것을 자료형(Data Type) 이라고 합니다.
2. 자료형의 종류(기본자료형, 참조형)
자바 언어에서 자료형은 두가지로 나뉩니다.
- 기본 자료형(primitive data types)
정수형(byte,short,int,long,char),실수형(float,double),논리형(boolean) - 참조형(reperence types)
배열(array),인터페이스,클래스
기본 자료형과 참조형에 대해 더 자세히 알아보겠습니다.
(1) 기본 자료형
- 기본 자료형은 스택(stack)영역에 생성되고 여기에 자료(data)가 저장됩니다.
- 기본 자료형은 스택 영역에 저장된 값을 사용하는 맴버 변수형 입니다.
- 기본 자료형은 멤버 변수나 상수의 값을 맴버 변수에 복사하므로 멤버 변수간에 서로 영향을 주지 않습니다.
int i;
int i = 5; //i의 값은 5
int j;
j = i // i의 값을 j에 복사하므로 j의 값은 5
j = 10; //j의 값은 10
기본 자료형은 3가지의 종류로 구분됩니다.
- 정수형(integer type) : byte,short,int,long,char의 예약어를 사용합니다.
- byte형: 8비트의 크기 값의 범위는 -128 ~127
- short형: 16비트의 크기이며 값의 범위는 −2¹⁵ ~ 2¹⁵−1 (−32,768 ~ 32,767)
- int형: 32비트 크기이며 값의 범위는 −2³¹ ~ 2³¹−1 (−2,147,483,648 ~ 2,147,483,647)
- long형: 64비트의 크기이며 값의 범위는 −2⁶³ ~ 2⁶³−1 (−9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
- char형 : 문자는 유니코드로 나타기 때문에 정수형에 속합니다. 16비트의 크기를 가지고 있으며 int형으로 형변환이 가능합니다. 나타낼 수 있는 문자의 개수의 범위는 0~65535입니다.
- 실수형(floating point type)은 float,double의 예약어를 사용합니다.
- float은 32비트 크기로 기억장소를 할당합니다.
- float형이 나타낼 수 있는 값의 범위는 ±1.4 × 10⁻⁴⁵ ~ ±3.4 × 10³⁸ 입니다.
- double은 64비트 크기로 기억장소를 할당합니다.
- double형이 나타낼 수 있는 값의 범위는 ±4.9 × 10⁻³²⁴ ~ ±1.7 × 10³⁰⁸ 입니다.
- 논리형(boolean type)
- 논리형은 1비트의 크기입니다.
- 논리형은 true 또는 false 값을 1비트 크기의 기억장소에 할당합니다.
byte age = 25; // 나이 (1바이트)
short year = 2024; // 연도 (2바이트)
int balance = 1500000; // 계좌 잔액 (4바이트)
long worldPopulation = 7900000000L; // 전 세계 인구 수 (8바이트, L 필수)
char korean = '한';
char unicodeChar = 65; // 유니코드 값으로 문자 저장 (65 = 'A')
char nextChar = (char) (unicodeChar + 1); // 'A' + 1 = 'B', 문자형 연산 (정수처럼 사용 가능)
(2) 참조형 또는 레퍼런스형(Reference Types)
- 참조형은 힙(heap)영역에 생성되고 여기에 자료(data)의 주소가 저장됩니다.
- 참조형은 힙 영역에 저장된 주소를 참조하는 멤버 변수 형 입니다.
- 참조형에는 문자열형(string type), 배열형(array type), 클래스형(class type), 인터페이스형(interface)이 있습니다.
- 멤버변수에 대한 주소를 다른 멤버변수에 복사하므로 멤버변수 간에 서로 영향을 줍니다.
MyClass obj1 = new MyClass();
Obj1.i=5
MyClass obj2;
obj2=obj1; //주소를 복사
Obj2.i =10; //Obj1.i의 같은 객체를 참조하고 있기 때문에 Obj1.i =10 이다.
Stack Heap
---------------------------------
obj1 ---> [ MyClass 객체(i=10) ]
obj2 ---> [ MyClass 객체(i=10) ]