📍 자바에서는 모든 변수에 타입을 정의하고 있으며, 변수가 가지는 타입에 따라 담을 수 있는 값의 종류가 달라집니다. 변수 타입과 값은 서로에게 상호보완적인 요소입니다. 알맞은 형에 값을 전달해야만 값을 정상적으로 저장할 수 있게 됩니다!
📍 변수 타입은 크게 기본형(primitive), 참조형(Reference type) 으로 구분할 수 있습니다.
기본형은 실제 값(데이터)를 담을 수 있는 변수의 타입입니다. 기본형의 개수는 총 8개로 구분하며 크게는 논리형, 문자형, 정수형, 실수형으로 구분할 수 있습니다.
- 논리 : boolean
- 문자 : char
- 숫자 : 정수(byte, short, int, long), 실수(float, double)
🦷 논리형 변수 타입 (boolean)
: 논리의 참과 거짓을 의미합니다. true
, false
중 하나의 값을 저장합니다.
🦷 문자형 변수 타입 (char)
: 문자(charCharacter)를 저장합니다.
🦷 정수형 변수 타입 (byte, short, int, long)
: 정수(Integer)로 표현되는 숫자를 저장합니다.
🦷 실수형 변수 타입 (double, float)
: 실수(Floating point)로 표현되는 숫자를 저장합니다.
분류,크기 | 1 | 2 | 4 | 8 |
---|---|---|---|---|
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
📍 Java에서 연산은 "2(byte) + 3(byte)"와 같이 동일한 데이터 타입에서 가능합니다.
하지만, 프로그램을 만들다 보면 "2(byte) + 3.5(double)"과 같이 서로 다른 데이터 타입끼리의 연산이 필요할 때가 있습니다. 이럴경우 변수의 데이터 타입을 바꿔주는 작업이 필요한데, 이것이 데이터 타입의 형변환(타입변환)
입니다.
📍 형변환은 상황에 따라서, 혹은 필요에 따라서 자료형(data type)이 다른 것으로 변환되는 것
을 말합니다. 특별한 경우에 자동적으로 발생하기도 하며, 강제로 개발자가 변환시킬 수도 있습니다.
public class promotion {
public static void main(String[] args) {
byte a = 10;
//정수 10을 byte 데이터 타입의 변수인 a에 저장
int b = a;
//byte 데이터 타입의 변수인 a를 int 데이터 타입의 변수 b에 저장
}
}
메모리 크기가 큰 변수 앞에 변환하고자 하는 데이터 타입을 괄호에 감싸 적는다
작은 크기 타입 = (작은 크기 타입) 큰 크기 타입
public class Casting {
public static void main(String[] args) {
int intValue = 1;
byte byteValue = (byte)intValue;
}
}
public class Casting {
public static void main(String[] args) {
int intVal = 44032;
char charVal = (char)intVal;
System.out.printf(charVal);
//44032에 해당되는 유니코드 '가' 출력
long longVal = 500;
intVal = (int)longVal;
System.out.printf(intVal);
//500은 1byte 이내이므로 값 손실 없음
double doubleVal = 3.14;
intVal = (int)doubleVal;
System.out.printf(intVal);
// 실수타입(float, double)은 소수점 이하 부분이 버려지고(값 손실) 정수 부분만 저장된다.
}
}
- 산술 연산자
- 대입 연산자
- 증감 연산자
- 비교 연산자
- 논리 연산자
- 비트 연산자
- 삼항 연산자
- instanceof 연산자
산술 연산자는 사칙 연산을 다루는 연산자로, 가장 기본적이고 많이 사용되는 연산자입니다. 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.
산술연산자 | 설명 |
---|---|
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나눈 몫 |
% | 나눈 나머지 |
연산자 | 예시 |
---|---|
대입 | =, +=, -=, *=, /=, ^= 등 |
증감 | ++,-- |
비교 | ==, !=, >, <, <=, >= 등 |
논리 | !, &, && 등 |
비트 | ~, &, ^ |
쉬프트 | <<, >>, >>> |
삼항연산자 | (조건식) ? A:B |
객체 타입을 확인하는 연산자이다. 형변환 여부를 확인하며, true, false로 결과를 반환한다. 쉽게 말해, 해당 클래스가 자기 집이 맞는지 확인해주는 연산자이다.
객체 instanceof 클래스
를 선언해 사용한다!