이 글은 작성자의 개인 공부를 위해 작성한 글입니다.
실제 이론, 실습과 다른 부분이 있을 수 있습니다.
자료형
자바에서는 데이터를 저장하고 처리하기 위해 여러 가지 자료형(데이터 타입)을 제공한다.
자료형은 크게 기본 자료형(primitive types)과 참조 자료형(reference types)으로 나눌 수 있다.
1. 기본 자료형 (Primitive Types)
기본 자료형은 자바에서 가장 기본적인 데이터 유형으로, 객체가 아닌 단일 값을 저장하는 데 사용된다.
자바에는 총 8개의 기본 자료형이 있다.
- 정수형 (Integer Types)
- byte : 8비트 정수형. 범위는 -128부터 127까지.
- short : 16비트 정수형. 범위는 -32,768부터 32,767까지.
- int : 32비트 정수형. 범위는 -2,147,483,648부터 2,147,483,647까지.
- long : 64비트 정수형. 범위는 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지.
- 실수형 (Floating-Point Types)
- float : 32비트 부동 소수점 수. 단정밀도(float).
- double : 64비트 부동 소수점 수. 배정밀도(double).
- 문자형 (Character Type)
- char : 16비트 유니코드 문자. 하나의 문자(예: 'A', 'a', '1', '한')를 저장. 범위는 '\u0000'부터 '\uffff'까지.
- 논리형 (Boolean Type)
- boolean : 참(true) 또는 거짓(false)의 두 가지 값만을 가질 수 있는 자료형.
2. 참조 자료형 (Reference Types)
참조 자료형은 객체의 주소를 저장하며, 기본 자료형을 제외한 모든 데이터 타입을 말한다.
이 타입들은 객체를 참조하며, 기본 자료형과 달리 힙(Heap) 메모리에 실제 데이터를 저장한다.
- 클래스 (Class)
- 자바에서 가장 중요한 참조 자료형으로, 사용자 정의 자료형이다.
- 클래스는 속성(필드)과 동작(메서드)을 포함할 수 있다.
- 배열 (Array)
- 같은 타입의 데이터 집합을 저장할 수 있는 자료형이다.
- 크기가 고정되어 있고, 인덱스를 사용하여 요소에 접근한다.
- 인터페이스 (Interface)
- 인터페이스는 클래스가 구현해야 하는 메서드들의 집합을 정의한다.
- 다중 상속을 지원하지 않는 자바에서 다중 상속과 유사한 기능을 제공하는 데 사용된다.
- 열거형 (Enum)
- 특정 상수 집합을 정의하는 자료형이다.
- 열거형은 관련된 상수들을 하나의 그룹으로 묶어 사용하기 쉽게 한다.
자바에서 변수와 상수는 데이터를 저장하고 관리하기 위한 기본적인 요소이다.
이 둘은 값의 변동 가능성에 따라 다르게 사용되는데, 변수를 사용할지 상수를 사용할지는 상황에 따라 달라진다.
-> 변수는 여러 상황에 맞게 값을 변경해서 사용할 때 유용하고, 상수는 변하지 않는 고정된 값을 표현할 때 사용
3. 변수 (Variable)
변수는 데이터를 저장할 수 있는 메모리 공간이다. 이 공간에는 프로그램이 실행되는 동안 여러 번 값을 변경할 수 있으며,자바에서 변수를 선언할 때는 자료형과 변수 이름을 지정해야 한다.
int number = 10; // int는 변수의 자료형, number은 변수의 이름
-> 'number'라는 이름의 정수형 변수가 만들어지고 초기값으로 10이 저장된다.
number = 20; // 이후 number의 값을 변경할 수 있다.
변수는 로컬 변수, 인스턴스 변수, 클래스 변수로 나뉘는데, 각각의 스코프와 사용 방법이 다르다.
로컬 변수는 메서드 내에서만 사용되고, 인스턴스 변수는 객체가 생성될 때마다 각 객체에 고유하게 할당된다.
클래스 변수는 static 키워드로 선언되며, 클래스 자체에 속하기 때문에 모든 객체가 공유가 된다.
4. 상수 (Constant)
상수는 한번 값을 할당하면 변경할 수 없는 데이터이다.
자바에서 상수는 final 키워드를 사용해서 선언하여 사용한다.
final int MAX_VALUE = 100; // MAX_VALUE라는 정수형 상수 선언, 그 값을 100으로 지정
-> MAX_VALUE의 값은 변경할 수 없다. 주로 변하지 않는 값으로 선언해야 한다.