JAVA 변수와 데이터 타입: 개념부터 실습까지

2024. 10. 10. 09:48·🗄️ Backend/Java

자바(Java)에서 변수와 데이터 타입은 프로그래밍의 기초 중 하나입니다. 이 글에서는 변수 선언과 초기화, 그리고 자바에서 사용되는 다양한 데이터 타입에 대해 알아보겠습니다. 특히 코드 예시와 함께 설명하여, 누구나 쉽게 이해하고 실습할 수 있도록 구성했습니다.


1. 변수란?

변수란 프로그램이 실행되는 동안 값을 저장하는 메모리 공간을 의미합니다. 변수의 값은 프로그램 실행 중에 언제든지 바뀔 수 있으며, 각 변수는 하나의 값과 특정 데이터 타입을 가집니다.

  • 변수의 특징
    • 하나의 값만 저장할 수 있음.
    • 한 가지 타입의 값만 저장할 수 있음.
    • 변수에 값을 저장하는 행위를 초기화라고 부릅니다.

변수 선언 방법

<데이터타입> <변수이름>;
  • 같은 타입의 변수는 콤마(,)를 이용해 한꺼번에 선언할 수 있습니다.
  • 예시:
    int a, b, c;

변수 선언과 초기화 예시

int num = 10; // 변수 선언과 초기화
System.out.println(num); // 10

2. 데이터 타입

자바에서 변수는 다양한 데이터 타입을 가질 수 있습니다. 기본적으로 크게 정수형, 실수형, 논리형, 문자형 데이터 타입으로 나뉩니다.

정수형 데이터 타입

타입 크기 값의 범위
byte 1바이트 -128 ~ 127
short 2바이트 -32,768 ~ 32,767
int 4바이트 -2,147,483,648 ~ 2,147,483,647
long 8바이트 매우 큰 값 (L을 붙임)

실수형 데이터 타입

타입 크기 설명
float 4바이트 소수점 이하 7자리 정도의 값 저장 (F를 붙임)
double 8바이트 소수점 이하 15자리 정도의 값 저장

논리형 데이터 타입

타입 크기 설명
boolean 1바이트 true 또는 false 저장

문자형 데이터 타입

타입 크기 설명
char 2바이트 한 글자를 저장 (유니코드 지원)
String 그때그때 다름 문자열 저장 (큰 따옴표로 표현)

3. 코드 예시: 데이터 타입 활용

public class DataTypeEX {
    public static void main(String[] args) {
        // 정수형 변수 선언 및 초기화
        byte a = 127;
        short b = 32767;
        int c = 2147483647;
        long d = 123123123123L; // long 타입 값 저장 시 'L' 필요

        // 실수형 변수 선언 및 초기화
        float f = 3.14F; // float 타입 값 저장 시 'F' 필요
        double d1 = 3.141592653;

        // 논리형 변수 선언 및 초기화
        boolean bool = true;

        // 문자형 변수 선언 및 초기화
        char ch = 'A';
        String str = "Hello, Java!";

        System.out.println("정수형 값: " + a + ", " + b + ", " + c + ", " + d);
        System.out.println("실수형 값: " + f + ", " + d1);
        System.out.println("논리형 값: " + bool);
        System.out.println("문자형 값: " + ch + ", " + str);
    }
}

4. 변수의 범위와 유효성

변수는 선언된 블록(중괄호 {}) 안에서만 유효합니다. 이를 변수의 스코프(Scope)라고 부릅니다.

변수 범위 예시

public class VariableScope {
    public static void main(String[] args) {
        int num = 100;
        if (true) {
            int num1 = 10; // 이 변수는 if 블록 내에서만 유효
            System.out.println(num1); // 출력 가능
        }
        // System.out.println(num1); // 에러 발생: num1은 if 블록 밖에서 사용 불가
    }
}

5. 형 변환(Type Casting)

자바에서는 데이터 타입이 다른 값들 간의 변환이 필요할 때가 있습니다. 이를 형 변환이라고 하며, 자동 형 변환과 명시적 형 변환으로 나눕니다.

1) 자동 형 변환 (Promotion)

작은 크기의 데이터 타입을 큰 크기의 데이터 타입으로 변환할 때는 자바가 자동으로 형 변환을 처리합니다.

byte a = 10;
int b = a; // byte -> int 자동 형 변환

2) 명시적 형 변환 (Casting)

큰 크기의 데이터 타입을 작은 크기의 데이터 타입으로 변환할 때는 명시적으로 형 변환을 지정해야 합니다.

int i = 100;
byte b = (byte) i; // 명시적 형 변환

형 변환 예시 코드

public class CastingEx01 {
    public static void main(String[] args) {
        int i = 70;
        char c = (char) i; // 명시적 형 변환
        System.out.println(c); // 출력: 'F'
    }
}

6. 연산과 형 변환

자바에서는 연산 시에도 형 변환이 일어납니다. 작은 데이터 타입들 간의 연산 결과는 int 타입이 기본입니다. 예를 들어 byte + byte 연산 결과는 int로 변환됩니다.

연산 시 형 변환 예시

public class CastingEx03 {
    public static void main(String[] args) {
        char c = 'A';
        int i = 2;

        System.out.println(c + i); // 출력: 67 (char 'A'는 65이므로)

        double d = 3.14;
        System.out.println(i + d); // 출력: 5.14 (int와 double 연산 결과는 double)
    }
}

7. 정리

  • 변수는 데이터를 저장하는 공간이며, 값이 실행 중에 변경될 수 있습니다.
  • 자바는 여러 데이터 타입을 제공하며, 변수는 한 가지 타입만 저장할 수 있습니다.
  • 형 변환은 데이터 타입 간의 변환을 의미하며, 자동 형 변환과 명시적 형 변환으로 나뉩니다.
  • 연산 시에는 작은 타입끼리의 연산도 int 타입으로 변환됩니다.

'🗄️ Backend > Java' 카테고리의 다른 글

JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection)  (1) 2024.10.10
JAVA 패키지와 객체지향 개념 정리  (0) 2024.10.10
JAVA 메서드와 객체지향 프로그래밍  (0) 2024.10.10
JAVA 배열과 제어문(반복문) 정리  (0) 2024.10.10
JAVA 연산자 총정리: 개념부터 예제까지!  (3) 2024.10.10
'🗄️ Backend/Java' 카테고리의 다른 글
  • JAVA 패키지와 객체지향 개념 정리
  • JAVA 메서드와 객체지향 프로그래밍
  • JAVA 배열과 제어문(반복문) 정리
  • JAVA 연산자 총정리: 개념부터 예제까지!
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

    • 홈
    • Devlog
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    AWS
    자바
    http
    스프링부트
    정보처리기사
    Spring
    jsp
    데이터베이스
    ADsP
    정처기
    쿼리
    백엔드
    백준
    springboot
    java
    SQL
    스프링
    GCP
    java기초
    DML
  • 최근 댓글

  • 최근 글

hjwjo
JAVA 변수와 데이터 타입: 개념부터 실습까지
상단으로

티스토리툴바