☕ 정수형 타입 byte, short, int, long
- byte 타입은 1byte 크기의 정수 값을 가질 수 있다.
- short 타입은 2byte 크기의 정수 값을 가질 수 있다.
- int 타입은 4byte크기의 정수값을 가질 수 있다.
- long타입은 8byte크기의 정수값을 가질 수 있다.
- 리터럴 값인 숫자 5는 int 타입이다
- 리털럴 값인 숫자 5L은 long 타입이다. (숫자 뒤에 L도는 ㅣ이 붙는다)
☕ 각 타입별 범위
☕ 실수형 타입 float, double
- float타입은 4byte 크기의 실수 값을 가질 수 있다.
- double 타입은 8byte 크기의 실수 값을 가질 수 있다.
- 리터럴 값인 숫자 5.2는 double타입이다.
- 리터럴 값인 숫자 5.2f는 float타입이다. (숫자 뒤에는 F 또는 f가 붙는다)
☕ 산술연산자
- 정수와 실수는 덧셈(+), 뺄쎔(-), 곱셈(*), 나눗셈(/), 나머지 구하기(%)를 할 수 있다.
a = 5 + 4;
b = 4 - 3;
c = 3 * 2;
d = 5 / 2;
e = 4 % 3;
- a는 9, b는 1, c는 6, d는 2, e는 1의 값을 가진다.
- 정수를 정수로 나누면 잘림 현상이 발생한다. 2.5가 아닌 2가 d에 저장된다.
- 나머지 연산자는 앞의 숫자를 나누고 나눈 나머지 값을 구한다.
☕ 증가 연산자와 감소 연산자
- 증가 연산자(++)를 사용하면 1이 증가된다.
- 감소 연산자(--)를 사용하면 1이 감소된다.
- 증가 연산자와 감소 연산자는 변수의 앞에 붙으면 전위 증가 연산자와 전위 감소 연산자라 부르고,
변수 뒤에 붙으면 후위 증가 연산자와 후위 감소 연산자라 말한다.
++a, a++ , --a, a--
a = 5;
a++;
b = 4;
b--;
- a++는 a = a+1 과 같은 뜻이다. a는 6이 된다
- b--는 a = a-1과 같은 뜻이다. b는 3이 된다.
☕ 산술 대입 연산자
- 산술 대입 연산자는 +=, -=, *=, /=, %=가 있다
a = 5;
a += 3;
b = 4;
b -= 2;
c = 8;
c *= 2;
d = 4;
d /= 2;
e = 4;
e %= 2;
- a += 3 은 a = a + 3을 줄인 식이다. a는 8이 된다.
- b -= 2는 b = b -2를 줄인 식이다.
☕ 괄호()
- 괄호가 있을 경우 괄호 안의 내용부터 계산한다
a = 3;
b = 5;
c = a * (b + 5);
d = a * b + 5;
☕ 정수와 실수의 최솟값과 최댓값
- int 타입과 double 타입이 표현할 수 있는 최댓값과 최솟값을 출력한다
public class NumberExam01 {
public static void main(String[] args) {
int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;
double maxDouble = Double.MAX_VALUE;
double minDouble = Double.MIN_VALUE;
System.out.println(maxInt);
System.out.println(minInt);
System.out.println(maxDouble);
System.out.println(minDouble);
}
}
결과값:
2147483647
-2147483648
1.7976931348623157E308
4.9E-324
☕ 오버플로우(overflow)
-계산 결과가 최댓값을 넘거나, 최솟값보다 작을 경우 음수는 양수로, 양수는 음수로 바뀌는 문제가 발생한다.
이를 오버플로우라고 한다.
public class NumberOverflow {
public static void main(String[] args) {
int value = 0;
int maxInt = Integer.MAX_VALUE;
System.out.println(value + 1);
System.out.println(maxInt+ 1);
}
}
결과값:
1
-2147483648
'개발&etc > JAVA' 카테고리의 다른 글
[java] 문자 타입 (0) | 2023.03.08 |
---|---|
[java] 타입의 변환 (0) | 2023.03.06 |
[java] 논리형 타입과 논리 연산자(비교, 논리) (0) | 2023.03.06 |
[java] 코드는 한줄씩 차례대로 실행된다 (1) | 2023.03.06 |
[java] 변수와 리터럴 (0) | 2023.03.06 |