*자바는 기본적으로 숫자는 int형으로 인식
int x = 5; 라고 했을 때 x는 int 타입 변수 x라고 말하고, 숫자 5는 변수에 대입되는 리터럴이라고 말한다.
long y = 5L; 이라고 했을 때 y는 long 타입 변수 y라고 말하고, 5L은 long 타입 리터럴이라고 말한다. (소문자 l 보다는 대문자 L을 사용하는게 좋음, 숫자 1로 착각하기 쉽기 때문)
++a, a++, --a, a--
a = 5;
a++;
b = 4;
b--;
a++은 a = a + 1과 같은 뜻이다. a는 6이 된다.
b--는 b = b - 1과 같은 뜻이다. b는 3이 된다.
a = 5;
a += 3;
b = 4;
b -= 2;
c = 8;
c *= 2;
d = 4;
d /= 2;
e = 5;
e %= 2;
a += 3은 a = a + 3을 줄인 식이다. a는 8이 된다.
b -= 2는 b = b - 2를 줄인 식이다. b는 2가 된다.
a = 3;
b = 5;
c = a * ( b + 5 );
d = a * b + 5;
public class NumberExam1 {
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
*MAX_VALUE, MIN_VALUE는 Integer 클래스, Double 클래스가 가지는 필드
*자동차와 엔진을 자바식으로 자동차.엔진이라고 표현할 수 있음
집과 방을 자바식으로 집.방이라고 표현할 수 있음
집, 자동차, 엔진 즉, 우리가 보는 사물들의 설계도를 클래스라고 생각하면 됨
설계도의 위에서 만들어진 실제 자동차를 객체(Object)라고 함 (설계도와 그 설계도로 만들어진 것을 구분할 수 있어야 함)
public class NumberOverflow {
public static void main(String[] args) {
int value = 10;
int maxInt = Integer.MAX_VALUE;
System.out.println(value + 1);
System.out.println(maxInt + 1);
}
}
*오버플로우가 발생하는 이유 : 01111111(127)에 1을 더하면 즉, 1byte가 표현할 수 있는 가장 큰 값에 1을 더하면 결과 값이 10000000(-128)이 됨 (맨 왼쪽은 부호 비트, 1이면 음수임)
11
-2147483648