새소식

Java

[Java] 변수의 개념과 타입

  • -

 

1. 변수

 

1)    변수의 개념

변수(Variable) = 값을 저장하기 위해 사용되는 이름이 있는 메모리 위치

 

데이터를 저장하고 참조할 수 있는 방법을 제공하여 프로그램의 유연성 및 가독성  UP

 

 

2)    변수의 타입

 

① 기본 타입 (Primitive Types)

변수
타입
변수 저장공간크기 기본값 범위 예시
숫자
타입
byte 1 byte 0 -2⁷ ~ (2⁷-1)   byte number = 10;
short 2 bytes 0 -2¹⁵ ~ (2¹⁵-1)   short number = 20;
int 4 bytes 0 -2³¹ ~ (2³¹-1)   int number = 30;
long 8 bytes 0L -2³ ~ (2³-1)   long number = 40;
float 4 bytes 0.0f 1.4e-45 ~ 3.4e+38
(소수점 7자리까지)
  float number = 3.14f;
double 8 bytes 0.0 4.9e-324 ~ 1.8e+308
(소수점 15자리까지)
  double number = 3.14;
논리
타입
boolean JVM에 따름
일반적으로
1 bytes
false true 또는 false   boolean flag = true;
문자
타입
char 2 bytes \u0000 0 ~ (2¹⁶-1)   char letter = 'A';

 

 

 

 

 

② 참조 타입 (Reference Types)

객체에 대한 참조를 저장하는 변수로

실제 데이터를 직접 저장하지 않고, 해당 객체에 대한 메모리 위치(주소)를 나타냅니다.

 

객체는 JVM의 힙(heap) 메모리에 저장되며, 참조 변수는 해당 객체의 주소를 저장합니다.

 

변수 타입 저장공간크기 예시
클래스 타입 (Class Types) 동적으로 변화   String text = "Hello";
인터페이스 타입 (Interface Types) 동적으로 변화   List<String> list = new ArrayList<>();
배열 타입 (Array Types) 동적으로 변화   int[] numbers = {1, 2, 3};
사용자 정의 타입 (User-defined Types) -   Person person = new Person();

 

 

 

 

 

③ 정적 변수 (Static)

변수의 타입에 상관없이 기본 타입 또는 참조 타입 모두 사용될 수 있습니다.

 

정적 변수는 클래스 수준에서 선언되고 클래스의 모든 인스턴스에 대해 공유되는 변수

 

 

    ● 기본 타입일 경우

    → 정적변수는 해당 기본 타입으로 선언

<예시>
public class Test {
static int Score; // 기본 타입인 int로 선언된 정적 변수
}

 

    ● 정적 타입일 경우

    → 정적변수는 해당 참조 타입으로 선언

<예시>
public class Fruit {
static String apple; // 참조 타입인 String으로 선언된 정적 변수
}
 

 

 
 
 

④ 동적 변수 (?)

정적변수(Static)가 있었으니, 동적변수가 있지 않을까?라는 의문을 품을 수 있습니다.

 

'동적 변수'라는 용어는 일반적으로 사용되지 않으며,

대신 인스턴스 변수라는 용어를 사용하여 객체의 개별 상태를 표현합니다.

 

 

● 인스턴스변수

클래스의 인스턴스(객체)마다 별도로 저장되는 변수

클래스 내에서 선언되고, 클래스의 생성자를 통해 초기화되거나 직접 값을 할당받을 수 있습니다.

다른 인스턴스들과는 독립적으로 동작하며, 인스턴스마다 다른 값을 가질 수 있습니다.

 

 

<예시>
public class Car {
String color; // 인스턴스 변수: 자동차의 색상
int speed; // 인스턴스 변수: 자동차의 속도

public Car(String color, int speed) {
this.color = color;
this.speed = speed;
    }
}

 

 

 

 

 

⑤ 지역 변수 (Local Variables)

특정 블록(메소드, 생성자, 초기화 블록 등) 내에서 선언되고 사용되는 변수

 

메서드나 블록이 실행될 때 생성되고, 해당 블록이 종료되면 자동으로 소멸됩니다.

즉, 선언된 블록 내에서만 사용할 수 있습니다.

 

<예시>
public void myMethod() {
int myVariable = 10; // 지역 변수 선언

if (myVariable > 5) {
String message = "Hello"; // 블록 내에 선언된 지역 변수
System.out.println(message);
}

// message 변수는 이 블록 외부에서 접근할 수 없음

// ... 
}

'Java' 카테고리의 다른 글

[Java] List 리스트의 개념과 종류  (0) 2023.07.03
[Java] 객체 지향 프로그래밍  (0) 2023.06.20
[Java] 클래스 선언 및 생성자  (0) 2023.06.19
[Java] 변수 타입 변환  (0) 2023.06.19
[Java] 변수 선언과 접근제한  (0) 2023.06.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.