1.부정연산자 _ !
주어진 조건이나 상수를 반대로 부정한다
상수(Constant)
변하지 않는 값
리터럴 (literal)
- 정수형 literal _ 1, 2, 25, 60, -10 ...
- 실수형 literal_ 25.1, 26.7 ....
- 문자형 literal_ 'a', 'v', 'A', 'B' ....
- 문자열 literal_ "Car", "Meal" ....
4.문자열 literal의 경우, 같은 문자열(값)이 입력될 경우 같은 값으로 확인되어지지만
1)문자열클래스 String을 이용한 경우와
2)별도의 객체 생성을 통해 입력된 값
두가지 방법으로 만들어 질 수 있는데
객체 생성을 통해 만들어진
클래스 영역으로 생성되는 인스턴스이므로
연산자를 통해 확인해도 다르게 확인된다.(주소값이 다름 false)
String b = "apple"; // "문자열 literal"
String c = new String("apple"); //
String d = "apple";
String e = new String("apple");
System.out.println(" b == c : " + (b == c? "같다" : "다르다") ); // 다르다
System.out.println(" b == d : " + (b == d? "같다" : "다르다") ); // 같다
System.out.println(" c == e : " + (c == e? "같다" : "다르다") ); // 다르다
그렇기때문에, 문자열을 비교하기 위해서는
equals()함수를 사용하여 문자열의 동일여부를 비교할 수 있다.
String b = "apple"; // "문자열 literal"
String c = new String("apple"); //
System.out.println(" b == c : " + (b == c? "같다" : "다르다") ); // 다르다
System.out.println( "b.equals(c) : " + (b.equals(c)? "같다" : "다르다")); // 같다 .equals()통해 비교
01_basic / src / Operator / Operator5.java
package Operator;
public class Operator5 {
public static void main(String[] args) {
boolean a = 25 > 55 ;
System.out.println(" a = " + a);
System.out.println(" !a = " + !a);
System.out.println();
String b = "apple"; // "문자열 literal"
String c = new String("apple"); //
String d = "apple";
String e = new String("apple");
System.out.println(" b == c : " + (b == c ? "같다" : "다르다") ); // 다르다
System.out.println(" b == d : " + (b == d ? "같다" : "다르다") ); // 같다
System.out.println(" c == e : " + (c == e ? "같다" : "다르다") ); // 다르다
System.out.println();
System.out.println( "b.equals(c) : " + (b.equals(c) ? "같다" : "다르다")); //같다
System.out.println( "!b.equals(c) : " + (!b.equals(c) ? "참" : "거짓")); //거짓
}
}
- 부정연산자를 이용하여 true - false 값을 변경할 수 있다
- 같은 방법으로 조건을 반대로 적용할 수 있다
- String 클래스로 선언하는 변수는 객체 선언없이 생성가능하다
- 객체를 생성하는 인스턴스는 주소값을 가지며 같은 값을 가진다 하더라도 인스턴스의 주소값이 다르기 때문에 동등비교에도 false가 뜬다
- 객체생성없이 선언한 String 변수는 값을 가지므로 동등비교가 가능하다.
- 객체를 생성하는 인스턴스의 값을 비교하기 위해서는 .equals() 를 사용하여 비교가 가능하다.