비교연산자의 연산결과는 true, false 두종류 뿐이다.
피연산자의 타입이 다를 경우 자료형의 범위가 큰 쪽으로 형변환을 해서 비교한다.
대소비교연산자의 경우 참조형에는 사용할 수 없다.
대소비교 연산자
>
, <
, >=
, <=
,
대소비교연산자의 경우 참조형에는 사용할 수 없다.
등가비교 연산자
==
, !=
public static void main(String[] args) {
System.out.printf("10 == 10.0f \t %b%n", 10 == 10.0f);
System.out.printf("'0'== 0 \t %b%n", '0'== 0);
System.out.printf("'A'== 65 \t %b%n", 'A'== 65);
System.out.printf("'A' > 'B' \t %b%n", 'A' > 'B');
System.out.printf("'A'+1 != 'B' \t %b%n", 'A'+1 != 'B');
}
/*
System.out.printf("10 == 10.0f \t %b%n", 10 == 10.0f); // true, 자료형의 범위가 큰쪽으로 형변환을 해서 연산한다
System.out.printf("'0'== 0 \t %b%n", '0'== 0); // false, 48 == 0;
System.out.printf("'A'== 65 \t %b%n", 'A'== 65); // true, 65 == 65;
System.out.printf("'A' > 'B' \t %b%n", 'A' > 'B'); // false, 65 > 66;
System.out.printf("'A'+1 != 'B' \t %b%n", 'A'+1 != 'B'); // false, 66 != 66;
*/
public static void main(String[] args) {
float f = 0.1f;
double d = 0.1;
double d2 = (double)f;
System.out.printf("10.0 == 10.0f %b%n", 10.0==10.0f);
System.out.printf("0.1==0.1f %b%n", 0.1==0.1f);
System.out.printf("f = %19.17f%n", f); // f = 0.10000000149011612
System.out.printf("d = %19.17f%n", d); // d = 0.10000000000000000
System.out.printf("d2 = %19.17f%n", d2); // d2= 0.10000000149011612
System.out.printf("d==f %b%n", d==f); // false
System.out.printf("d==d2 %b%n", d==d2); // false
System.out.printf("d2==f %b%n", d2==f); // true
System.out.printf("(float)d==f %b%n", (float)d==f);// true
}
/*
float f = 0.1f; // f에 0.0000000149011612로 저장된다.
double d = 0.1; // d에 0.0000000000000001로 저장된다.
*/
public static void main(String[] args) {
String str1 = "abc";
String str2 = new String("abc");
System.out.printf("\"abc\"==\"abc\" ? %b%n", "abc"=="abc");
System.out.printf(" str1==\"abc\" ? %b%n", str1=="abc");
System.out.printf(" str2==\"abc\" ? %b%n", str2=="abc"); // false, 객체가 다르기때문에 false로 출력이 된다.
System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc"));
System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc"));
System.out.printf("str2.equals(\"ABC\") ? %b%n", str2.equals("ABC"));
System.out.printf("str2.equalsIgnoreCase(\"ABC\") ? %b%n", str2.equalsIgnoreCase("ABC"));
}
/*
문자를 비교할때는 항상 equals()를 사용하자
대소문자를 구별하지않고 비교하려면 equalsIgnoreCase()를 사용하자
*/