변수와 자료형

제민·2024년 7월 1일

Java 개념 공부

목록 보기
3/21
post-thumbnail

변수란?

변수는 데이터를 저장하기 위한 메모리 공간을 의미합니다. 변수는 프로그램 실행 중에 값이 변할 수 있으며, 각 변수는 고유한 이름(변수명)을 가집니다. 변수는 특정 데이터 타입에 맞는 값을 저장할 수 있도록 선언됩니다.

int number = 10;
String text = "Hello, World!";

위 예제에서 number는 정수형(int) 변수를 의미하며, text는 문자열(String) 변수를 의미합니다.

각 자료형의 종류와 바이트 크기

자바의 자료형은 크게 기본 자료형(Primitive Data Type)과 참조 자료형(Reference Data Type)으로 나눌 수 있습니다.

기본 자료형

  1. 정수형
    • byte: 1바이트 (8비트), -128 ~ 127
    • short: 2바이트 (16비트), -32,768 ~ 32,767
    • int: 4바이트 (32비트), -2,147,483,648 ~ 2,147,483,647
    • long: 8바이트 (64비트), -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
      //정수형
      byte by = 1; //만약 by > 127이라면 오류!
      short sh = 2;
      int in = 3;
      long lo = 4;	
      System.out.println(by + ", " + sh + ", " + in + ", " + lo);
      //결과
      1, 2, 3, 4
  1. 실수형

    • float: 4바이트 (32비트), 단정도 부동소수점
    • double: 8바이트 (64비트), 배정도 부동소수점
      //실수형
      float f1 = 3.14f;
      //float의 경우 소수 자료형의 기본형이 double이기 때문에 끝에 f를 붙인다
      double dou = 3.141592; 
      System.out.println(f1 + ", " + dou);
      //결과
      3.14, 3.141592
  2. 문자형

    • char: 2바이트 (16비트), 유니코드 문자
      //문자형
      char ch1 = '제'; //한글자만 넣을 수 있다.
      char ch2 = '민';
      System.out.println(ch1);
      System.out.println(ch2);
      //결과
      제
      민
  3. 논리형

    • boolean: 1비트, true 또는 false
      //논리형
      boolean b1 = 10 > 5; //true
      boolean b2 = 20 == 10; // false		
      System.out.println(b1);
      System.out.println(b2);
      //결과
      true
      false

참조 자료형

참조 자료형은 객체의 주소를 저장하는 변수형입니다. 배열, 클래스, 인터페이스 등이 이에 해당합니다.

상수와 리터럴

상수

상수는 한 번 값이 지정되면 변경할 수 없는 변수를 의미합니다. 자바에서는 final 키워드를 사용하여 상수를 선언합니다.

final int MAX_VALUE = 100;

리터럴

리터럴은 소스 코드에 직접적으로 명시된 값을 의미합니다. 예를 들어, 숫자 10, 문자열 "Hello", 논리 값 true 등이 리터럴입니다.

int num = 10;       // 숫자 리터럴
String text = "Hello"; // 문자열 리터럴
boolean flag = true;   // 논리 리터럴

변수의 초기화

변수의 초기화는 변수를 선언한 후 처음으로 값을 지정하는 과정을 의미합니다. 초기화되지 않은 변수는 사용할 수 없습니다.

int num;      // 선언
num = 10;     // 초기화
int age = 25;    // 선언과 동시에 초기화

형 변환

형 변환(Type Casting)은 변수의 타입을 다른 타입으로 변환하는 것을 의미합니다. 자바에서는 자동(묵시적) 형변환과 강제(명시적) 형변환이 있습니다.

자동 형변환(Implict Conversion)

자동형 변환은 작은 크기의 자료형이 큰 크기의 자료형으로 자동 변환되는 것을 의미합니다.
자바에서는 데이터 손실이 발생하지 않거나, 손실이 거의 없는 방향으로 자동 변환을 진행할 수 있습니다.
그래서 자동형 변환은 작은 크기를 가지는 타입이 큰 타입을 가지는 타입으로만 저장이 가능합니다.

자동형변환이 가능한 방향
byte -> short -> int -> long -> float -> double
char -> int

int num = 10;
double result = num; // int -> double (자동형 변환)
System.out.println(result);
//결과
10.0
``

강제 형변환(Explicit Conversion)

명시적 형 변환은 큰 크기의 자료형을 작은 크기의 자료형으로 변환할 때, 명시적으로 타입을 지정해야 하는 것을 의미합니다.

double pi = 3.1415;
int num = (int)pi; // double -> int (명시적 형 변환)
System.out.println(num);
//결과
3

명시적 형 변환 시 데이터 손실이 발생할 수 있으므로 주의해야 합니다.
(ex. long타입의 경우 int로 바꿀 때 8비트에서 4비트로 바뀌기 때문에 숫자와 부호가 바뀔수 있습니다.)

long num = 3000000007L;
int num2 = (int)num;
System.out.println(num2);
//결과
-1294967289
profile
초보부터 시작하는 개발자 생활

0개의 댓글