
float f = 1234; 일 때 리터럴 앞에 (float)가 생략되어 있다
byte b = 1000; 일 때 byte타입(-128~127)의 범위를 벗어난 값 대입
그러나 프로그래머가 실수가 아닌 의도적으로 간주할 시 오류 X
byte b = (byte)1000;

큰 타입으로)long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
byte + short -> int + int -> int
char + short -> int + int -> int
public static void main(String[] args){
byte a = 10;
byte b = 30;
byte c = (byte)(a*b);
System.out.println(c);
}
44가 화면의 출력
10*300 = 300 이지만 큰 자료형(int) -> 작은 자료형(byte) 변환은 데이터 손실
public static void main(String[] args){
int a = 1_000_000;
int b = 2_000_000;
long c = a + b;
System.out.println(c);
int 와 int의 연산 결과는 int이기 때문에 long 형으로 자동 형변환 되어도
값은 바뀌지 않는다!
소수점 첫째자리에서 반올림
다른 자리에서 반올림 하는 경우 곱하기 + 나누기 이용
== & equals()
== 는 두 문자열이 완전히 같은 것인지 비교할 뿐
equals()는 내용이 같으면 true 반환
String str = "abc" 처럼 문자열 선언 시에는 == 가 문제 발생 X
String str = new String("abc") 처럼 문자열 선언시에는 == 가 문제 발생
대소문자 구분 않고 비교 -> equalsIgnoreCase(): 메서드 사용
대부분 이항 연산자는 두 피연산자의 타입이 다른 경우, 변환이 일어난다는 것 인지!