두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
byte + short -> int + int -> int
char + short -> int + int -> int
class OperatorEx8 {
public static void main(String args[]) {
int a = 1_000_000; //1,000,000 1백만
int b = 2_000_000; //2,000,000 2백만
long c = a * b; // a * b = 2,000,000,000,000 ?
System.out.println(c);
}
}
int (1000000) * int (1000000) -> int (-727379968) -> 오버플로우 발생
long c = (long)a*b
로 형변환해야 한다. long c = (long)a * b;
-> long c = (long)1000000 * 2000000;
-> long c = 1000000L * 2000000;
-> long c = 1000000L * 2000000L;
-> long c = 2000000000000;
equals
라는 메서드를 사용해야 한다.String str1 = "abc";
String str2 = new String("abc");
System.out.println(str1.equals("abc"));
System.out.println(str2.equals("abc"));
문자열.equalsIgnoreCase("abc")
를 사용한다.조건식 ? 식1 : 식2
=> 조건식이 참이면 식1이, 거짓이면 식2이 연산결과가 된다.
result = (x>y) ? x : y;