본문 바로가기
컴퓨터 프로그래밍/Java

[Java] 변수 ( 새로 알게된 내용 정리 )

by 한33 2024. 7. 22.

float 타입의 변수를 선언할 때에는 마지막에 접미사 f 를 붙여준다. (long 타입은 L)

float floatNumber = 1.0f;

 

 

char 타입의 변수와 같은 문자형을 선언할 때는 홑따음표

char num = '1';

 

String  타입의 변수와 같은 문자열을 선언할 때는 쌍따음표로 선언.

String message = "Hello World!";

 

 

변경 불가능한 변수

final boolean flag = true;

 

위 처럼 변수 선언 시 타입 앞에 final 을 붙여주면 변경 불가능한 변수 선언이 된다.

 

참조형 변수

 

문자열 변수 : String

  • "Apple", "텍스트" 와 같은 문장 저장

String message = "Hello World"; //문자열 저장

 

 

그 외 : Object, Array, List ...

  • 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장

List<int> alphabet = [0,1,2,3]; // 기본형 변수 여러개를 저장

 

래퍼 클래스 변수

  • 기본형 변수를 클래스로 한 번 랩핑하는 변수
  • 기본형 변수 타입명에서 첫 글자를 대문자로 바꾸어서 래퍼 클래스를 정의
  • 박싱 VS 언박싱
    • 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것을 “박싱”
    • 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것을 “언박싱”
// 박싱
// Integer 래퍼 클래스 num 에 21의 값을 저장
int number = 21;
Integer num = number;

// 언박싱
int n = num.intValue();
// 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공
기본 타입
래퍼 클래스
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean

 

 

왜 굳이 래퍼 클래스를 사용하는가?

 

클래스는 객체지향 언어인 Java 의 핵심기능.

때문에 클래스로 변수를 관리하면 객체지향의 많은 기능을 사용할 수 있게 됨.

 


형변환

문자열로 입력받은 변수를 숫자로 변환해서 계산을 하고 싶은 경우, 문자열에 숫자 값을 추가하고 싶은 경우 등

어떤 변수형을 다른 형으로 변환이 필요한 경우가 많음

 

자동 형변환

자동 타입 변환은 작은 크기의 타입에서 큰 크기의 타입으로 저장될 때 큰 크기로 형변환이 발생

byte byteNumber = 10;
int intNumber = byteNumber;    // byte -> int 형변환
System.out.println(intNumber); // 10

char charAlphabet = 'A';
intNumber = charAlphabet;   // char -> int 형변환
System.out.println(intNumber); // A의 유니코드 : 65

intNumber = 100;
long longNumber = intNumber; // int -> number 형변환
System.out.println(longNumber); // 100

intNumber = 200;
double doubleNumber = intNumber; // int -> double 형변환
System.out.println(doubleNumber); // 200.0  (소수점이 추가된 실수출력)

 

작은 크기의 타입이 큰 크기의 타입과 계산될 때 자동으로 큰 크기의 타입으로 형변환

int intNumber = 10;
double doubleNumber = 5.5;
double result = intNumber + doubleNumber; // result 에 15.5 저장됨 (int -> double)

intNumber = 10;
int iResult = intNumber / 4; // iResult 에 2 저장됨 (int형 연산 -> 소수점 버려짐)

intNumber = 10;
double dResult = intNumber / 4.0; // dResult 에 2.5 저장됨 (double형 연산 -> 소수점 저장)

 

강제 형변환

큰 타입에서 더 작은 표현 범위를 가진 타입으로 변환되는 것이라 값의 손실이 생김