자바의 변수와 데이터타입
2024. 1. 25. 02:07ㆍJava
반응형
변수란 무엇인가
변수란 자바 프로그램이 실행되는 동안 데이터가 담길 공간을 의미한다.
모든 변수는 특정한 타입으로 이루어진다.
변수에는 로컬(Local), 인스턴스(Instance), 스태틱(Static) 세 가지 유형이 있다.
변수 선언 (Declaration)
선언이란 변수의 타입과 이름을 지정하여 변수라는 데이터가 들어갈 공간을 확보하는 것이다.
타입과 변수명을 차례로 나열한다.
// 타입, 변수명
int a, b, c;
float pi;
double d;
char s;
변수 초기화 (Initialization)
초기화란 선언된 변수에, 즉 메모리 공간에 초기값을 할당하는 것이다.
// 타입, 변수명, 초기값
int a = 1, b = 2, c = 3;
float pi = 3.14f;
double d = 12.34d;
char s = 'g';
변수의 유형
로컬 변수 (Local Variable)
메서드 내부에서 선언된 변수
인스턴스 변수 (Instance Variable)
static 키워드가 없고 메서드 외부에서 선언된 변수로, 클래스나 객체 내에서 선언된다.
정적 변수 (Static Variable)
프로그램 실행시 한 번만 초기화되어 값이 할당되고, 인스턴스 변수보다 먼저 초기화된다.
class VariableType {
static int a = 6; // 정적 변수
int b = 7; // 인스턴스 변수
void testMethod() {
int c = 9; // 로걸 변수
}
}
데이터 타입이란 무엇인가
자바의 데이터 타입은 변수 또는 식별자의 형태에 맞춰 다른 크기로 저장할 수 있는 자료형이다.
원시(Primitive) 타입과 비원시 타입으로 나뉜다.
원시 타입 (Primitive Data Type)
자바 내에서 미리 정의되어 있는 데이터 타입을 의미한다.
자바에서는 8개의 원시타입으로 byte, short, int, long char, float, double, boolean 을 정의하고 있다.
- 정수 자료형 (Integer)
- byte (1byte, default 0)
- short (2bytes, default 0)
- int (4bytes, default 0)
- long (8bytes, default 0L)
- 실수 자료형 (Floating)
- float (4bytes, default 0.0f)
- double (8bytes default 0.0d)
- 문자 자료형 (Textual)
- char (2bytes, default ‘\u0000’)
- 논리 자료형 (Logical)
- boolean (1bit. true false default false)
비원시 타입 (Non-primitive Data Type)
문자열 String, 배열 Array, 클래스 Class 등이 있다.
타입 변환, 타입 캐스팅
변수의 자료형은 다른 자료형으로 변환될 수 있다. 여기에는 두 가지 케이스가 있다.
- 바이트 수가 늘어나는 경우 : 자동 형변환이 일어난다.
double d; int i = 10; d = i; // 자동 형변환이 일어나 d에는 10.0 이 저장된다.
- 바이트 수가 줄어드는 경우 : 특정 타입으로 변환하겠다는 타입 캐스팅이 일어나고, 변환할 수 없는 경우에는 컴파일 에러가 난다.
double d = 10; int i; i = (int) d; // 타입 캐스팅이 일어나 i에는 10 이 저장된다.
- 예시
byte x; int a = 270; double b = 128.128; x = (byte) a; // x: 14 -> 손실. 데이터 오버플로우 (-128 ~ 127 사이의 값을 순환) a = (int) b; // a: 128 -> 손실. 소수점 버림 x = (byte) b; // x: -128 -> 손실. 소수점 올림 후 데이터 오버플로우 (-128 ~ 127 사이의 값을 순환)
References
반응형