Boolean Type
Boolean Type은 1 Byte (8bit)를 차지합니다.
1 Byte(8bit)가 메모리상 컴퓨터가 가장 쉽게 처리 할 수 있는 단위기 때문입니다.
다음은 예시입니다.
boolean bool1 = !true; // false 반환
boolean bool2 = !false;// true 반환
boolean bool3 = !!bool1; // false 반환
boolean bool4 = !!!bool3; // true 반환
boolean bool5 = !(false); // true 반환
boolean bool7 = !((5 / 2) == 2.5);
// -> !(2 == 2.5) -> !(false) -> true
boolean bool8 = !((3f + 4.0 == 7) != ('A' < 'B'));
// -> !((true)!=(true)) -> !(false) -> true
비교 연산자
어느 쪽이 큰 지 작은 지, 같은 지를 반환하는 연산자입니다.
//같은 문자열인지 여부 반환
boolean bool1 = 'A' == 'A';// true 반환
boolean bool2 = 'A' == '가'; // false 반환
// 숫자와 비교할 시 해당 정수값 기준으로 큰지 작은지 확인
boolean bool3 = '1' == 49; // true 반환
boolean bool4 = 'A' > 64.0; // true 반환
boolean bool5 = 'A' > 66f;// false 반환
// 사전 순서로 먼저 오는 쪽이 작음
boolean bool6 = 'A' < 'B'; // true 반환
boolean bool7 = '가' > '나'; // false 반// false 반
단축 평가 (Short Circuit)
란 쉽게 말해서 '뒤는 볼 필요도 없다!' 입니다.
int a = 1, b = 2, c = 0, d = 0, e = 0, f = 0;
boolean bool1 = a < b && c++ < (d + -3);
// &&(and) 일 경우 양쪽 다 true 여야 true 가 됩니다.
// 하지만 bool1의 c++ < (d + -3)이 false기 때문에 false가 반환 됩니다.
boolean bool2 = a < b || e++ < (f += 3);
// bool2 는 ||(or) 이면서 a < b 가 true입니다. 따라서 뒤쪽은 볼 필요도 없이
// true가 반환 됩니다.
boolean bool3 = a > b && c++ < (d += 3);
boolean bool4 = a > b || e++ < (f += 3);
// 삼항 연산자 : a ? b : c
// a가 true 일때 b 반환. false면 c 반환
int num1 = 3, num2 =4;
char num10E = num1 % 2 == 1 ? '홀' : '짝';
char num20E = num2 % 2 == 1 ? '홀' : '짝';
int num =3;
// 아래 값을 바꾸며 실행
boolean mult2 = true;
//mult2 = false;
boolean plus5 = true;
//plus5 = false;
// 헷갈리기 쉬운 단축평가, boolean, 삼항연산
System.out.println(
(!mult2 && !plus5)? num
// false && false) -> false. 다음 : 으로 넘어감
: (mult2 && plus5) ? num * 2 + 5
// true 기 때문에 11 출력 끝. 아래는 출력되지 않음
: mult2 ? num * 2
: num + 5
);
'Programming Language > Java' 카테고리의 다른 글
[eclipse/servlet] context root 변경 방법 (0) | 2024.07.19 |
---|---|
[Java] String 비교 방법 '==' 과 'equals()'의 차이점 (0) | 2024.07.19 |
[Java]추상 클래스와 인터페이스의 차이 (0) | 2024.03.20 |
java 식별자(Identifier) : Final 연산자, 식별자 명명 관례 (0) | 2024.01.08 |
java intelliJ 시작하기(1) (1) | 2023.11.19 |