자바의 타입에는 기본형 타입과 레퍼런스 타입 2가지 종류가 있다.
- 기본형 타입은 논리형, 문자형, 정수형, 실수형이 존재한다.
- 논리형 : boolean
- 정수형 : byte(1byte) short(2byte) int(4byte) long(8byte)
리터럴 값인 숫자 5는 int, 5L은 long 타입이다.(숫자 뒤에 L 또는 l이 붙는다.) - 실수형 : float(4byte, 소수 부분 6자리) double(8byte, 소수 부분 15자리)
리터럴 값인 숫자 5.2는 double, 5.2f은 float 타입이다.(숫자 뒤에 F 또는 f가 붙는다.) - 문자형 : char
- 이를 제외한 모든 타입은 레퍼런스 타입이다.
타입의 변환
double형 타입은 정수값이 잘 대입된다.
더보기
double d1 = 50;
double d2 = 500L;
int형 타입에 실수를 대입하면 오류가 발생한다. 실수는 정수를 포함하지만, 정수는 실수를 포함할 수 없기 때문에 오류가 발생한다.
더보기
int i1 = 50.0;
int i2 = 25.4f;
때문에 실수 값을 정수에 저장하려면 형 변환을 해야한다. 변환하고자 하는 값 앞에 (변환할 타입)을 붙인다. 주의할 점은 소수점 이하 부분은 잘린다. 이를 명시적 타입 변환(강제 타입 변환)이라고 한다.
더보기
int i1 = (int)50.0;
int i2 = (int)25.4f;
형 변환 시 지켜야할 규칙이 있는데 크기가 큰 타입은 작은 타입을 저장할 수 있지만 반대는 불가능하다는 것이다.
때문에 정수의 자동 타입 변환은
더보기
byte형 → short형 → int형 → long형 → float형 → double형
이런 식으로 이루어진다.
반대로 크기가 큰 타입을 작은 타입에 저장하려면 명시적 형 변환을 해야한다. 이 때 주의할 점은 오버플로우를 조심해야 한다.
※ 오버플로우란? 계산 결과가 최댓값을 넘거나, 최솟값보다 작을 경우 음수는 양수로, 양수는 음수로 바뀌는 문제가 발생한다. 이를 오버플로우라고 한다
연산자(비교, 논리, 산술, 비트, 삼항, instanceof 연산자)
- 비교 연산자 > < =
- 논리 연산자 and( && ) or( || ) XOR( ^ ) NOT( ! )
- and와 or은 & 이나 | 으로도 사용할 수 있는데 차이점은 &&을 사용했을 경우 and에서 하나라도 거짓이면 거짓이므로 앞에서 나온 조건이 거짓이면 뒤의 조건은 실행시키지 않고 결과를 도출해낸다. 하지만 & 하나만 사용할 경우 앞의 조건이 거짓이라해도 뒤의 조건까지 실행시키고 결과를 도출한다. | 도 마찬가지로 앞의 조건이 참이어도 뒤의 조건까지 실행시키고 진행한다.
- 산술 연산자 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지구하기(%) ++(증가 연산자), --(감소 연산자)
- 산술 대입 연산자 += -= *= /= %=
- 증가 연산자와 감소 연산자는 변수의 앞에 붙으면 전위 증가 연산자와 전위 감소 연 산자라 부르고, 변수의 뒤에 붙으면 후위 증가 연산자와 후위 감소 연산자라 말한다.
- 정수와 실수의 최댓값과 최솟값
더보기
- int maxInt = Integer.MAX_VALUE;
- int minInt = Integer.MIN_VALUE;
- double maxDouble = Double.MAX_VALUE;
- double minDouble = Double.MIN_VALUE;
- 비트 연산자 >> 와 <<
더보기<< 는 명시된 수만큼 비트들을 전부 왼쪽으로 이동시킨다. >>는 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킨다.
만약 int a = 4; 라고 할 때, int b = a >> 1; 을 실행시키면
a 00000000 00000000 00000000 00000100에서 비트가 우측으로 하나씩 밀리고 맨 좌측에 0이 채워져서
b 00000000 00000000 00000000 00000010 결과가 나오게 된다. - 삼항 연산자 - 조건에 따라 두 가지 값 중 하나를 선택하는 연산자입니다.
더보기int num = 10;
String result = num > 5 ? "5보다 크다" : "5보다 작다";
System.out.println(result); // 5보다 크다 - instanceof 연산자 - 객체의 타입을 확인하는데 사용됩니다.
더보기if(book instanceof Object) {
System.out.println("Book은 객체 입니다. ");
}
'개념정리(JAVA)' 카테고리의 다른 글
| 배열과 아규먼트 (0) | 2024.03.27 |
|---|---|
| 선형 검색과 보초법 (0) | 2024.03.21 |
| 제어문 (0) | 2024.03.13 |
| Enum (0) | 2024.03.13 |
| 주석문 (0) | 2024.03.13 |