int num5 = 5;
num5 = num5*2;
System.out.println(num5);
num5를 int타입 5로 선언하면 메모리영역 안의 num5변수 영역에 5라는 숫자가 있음.
-> 연산 시 메모리 영역의 num5변수 영역에서 숫자 5를 가져와 연산 실행(CPU에서 작업실행)
-> 이후 System이라는 객체(JVM 기본제공)를 사용하여 out.println() 메서드 실행

System.out.println(0.1+0.2);
//0.30000000000000004 출력
//타입에 따라 표기가능한 소수점자리까지 출력
10진수는 2진수로 변환된 뒤 계산되며, 계산 후 다시 10진수로 표현된다.
★2진수로 표현 시 숫자를 정확하게 나타낼 수 없다.
int apple = 1;
int totalPieces = apple * 10;
int number = 7;
int temp = totalPieces - number;
double result = temp/10.0;
System.out.println("사과 한 개에서 0.7조각을 빼면, ");
System.out.println(result+"조각이 남는다.");
=> '0.3조각이 남는다.' 출력
소수점 표기를 정수로 우선계산하고 다시 소수점영역으로 변환 시 정확한 계산 가능
5 / 0.0 -> Infinity
5 % 0.0 -> NaN
NaN, Infinity의 결과가 나왔을 때 계속 연산 시 데이터가 엉망이 됨.
연산의 결과가 NaN, Infinity인지 확인하려면 Double.isInfinite()와 Double.isNaN()메서드 이용