[JAVA] 01 변수와 자료형

이 글은 자바(Java)를 처음부터 다시 정리하는 시리즈의 첫 번째 글이다. 자바의 변수와 자료형은 이후 배열, 클래스, 객체, 컬렉션 등 모든 개념의 기초가 되기 때문에 반드시 정확하게 이해하고 넘어가야 한다.


1. 변수란

변수(variable)는 값을 저장하는 메모리 공간에 붙인 이름이다. 자바는 변수를 선언할 때 반드시 자료형을 명시해야 한다.

int count = 10;
  • int : 저장할 값의 타입
  • count : 변수 이름
  • 10 : 실제 저장되는 값

자바는 정적 타입 언어이기 때문에 변수의 타입은 컴파일 시점에 결정된다.


2. 변수 선언과 초기화

자바에서 변수는 다음 형식을 따른다.

자료형 변수명 = 값;

선언과 초기화를 분리할 수도 있다.


int age;      // 선언
age = 25;     // 초기화

또는 동시에 수행할 수도 있다.

int age = 25;

지역변수는 초기화하지 않고 사용하면 컴파일 에러가 발생한다.


3. 자료형의 분류

자바의 자료형은 크게 두 가지로 나뉜다.


1) 기본 자료형 (Primitive Type)
2) 참조 자료형 (Reference Type)

이 구분은 메모리 구조와 객체 개념을 이해하는 데 매우 중요하다.


4. 기본 자료형 (Primitive Type)

기본 자료형은 값 자체를 저장한다. 특별한 이유가 없다면 정수는 int, 실수는 double을 사용한다.

타입 크기 설명
byte1byte정수
short2byte정수
int4byte정수
long8byte정수
float4byte실수
double8byte실수
char2byte문자 1개
boolean구현 의존true / false

5. 정수 타입 사용 시 주의점

long 리터럴

long money = 10000000000L;

정수 리터럴은 기본적으로 int로 인식되기 때문에, long 타입 값을 사용할 때는 반드시 L을 붙여야 한다.


6. 실수 타입과 오차


double a = 0.1;
double b = 0.2;

System.out.println(a + b);

OUTPUT

0.30000000000000004

실수는 이진수로 정확하게 표현되지 않아 부동소수점 오차가 발생할 수 있다. 정확한 계산이 필요한 경우 BigDecimal을 사용한다.


7. char와 String

char


char c = 'A';
System.out.println(c);
System.out.println((int)c);

OUTPUT


A
65

char는 작은따옴표를 사용하며, 문자 1개만 저장한다. 내부적으로는 유니코드 정수값으로 처리된다.

String

String str = "Java";

큰따옴표를 사용하며 여러 문자를 저장할 수 있다. String은 참조 자료형이다.


8. 기본형과 참조형의 차이

기본형


int a = 10;
int b = a;
b = 20;

System.out.println(a);
System.out.println(b);

OUTPUT


10
20

기본형은 값이 복사된다.

참조형


int[] arr1 = {1, 2};
int[] arr2 = arr1;
arr2[0] = 100;

System.out.println(arr1[0]);
System.out.println(arr2[0]);

OUTPUT


100
100

참조형은 같은 객체를 가리킨다.


정리

  • 자바는 타입이 엄격한 언어다.
  • 기본형과 참조형의 차이는 매우 중요하다.
  • 실수 오차와 문자열 특성은 반드시 이해해야 한다.