학습할 것
- 산술 연산자
- 비트 연산자
- 관계 연산자
- 논리 연산자
- instanceof
- assignment(=) operator
- 화살표(->) 연산자
- 3항 연산자
- 연산자 우선 순위
- (optional) Java 13. switch 연산자
연산자 ?
연산자란 수나 식을 일정한 규칙에 따라 계산하는것입니다.

CPU : 중앙처리장치
컴퓨터 시스템을 통제하고 , 프로그램의 연산을 실행하는 제어장치입니다.
반도체는 대부분 실리콘으로 이루어져있는데, 실리콘은 최외곽 전자가 4개를 가지고있습니다.
실리콘원자는 최외곽원자가 8개일 때 가장 안정한 상태를 가집니다.
실리콘원자는 다른 실리콘원자와 원자를 공유하며 강하게 결합되어있습니다.
이 때 최외곽 원자가 하나 부족하거나 , 최외곽 원자가 하나 더 많을경우 실리콘원자는 불안정한 상태가 되는데 , 이 때 전압을 걸어 전류가 흐르게 만들 수 있습니다.(트랜지스터)
해당 원리를 이용해서 논리회로를 만들 수 있는데 종류가 다양하게있습니다.

Buffer Gate : 입력한 값을 그대로 출력
Not Gate(Inverted Gate) : 입력값을 반대로 출력
And Gate : 입력값이 모두 참일경우 1 출력
NotAnd Gate : And Gate의 출력값을 반전
Or Gate : 입력값이 하나라도 참일경우 1. 출력
Not Or Gate : Or Gate의 출력값을 반전
Exclusive Or Gate : Or Gate 이지만 , 입력값이 모두 1일경우 0 출력
Exclusive Not Or Gate : 입력값이 모두 같으면 1출력 , 다르면 0출력
산술연산자 ?
산술연산자란 사칙연산을 다루는 기본적인 연산을 하는 연산자 입니다.
기본적으로 논리게이트를 이용하여 재귀하는 방식으로 사칙연산이 수행됩니다.
더하기
CPU는 더하기를 계산할 때에도 논리게이트를 사용하여 계산하게 됩니다.
반가산기 : 입력이 두개 A,B

입력 | 출력 | ||
A | B | (Sum)합 | (Carry)올림수 |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
전가산기 : 입력이 세개 A,B,C(올림수)

입력 | 출력 | |||
A | B | C_in | C_out | SUM |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
비트 연산자 ?
비트연산자란 2진수로 되어있는 값을 왼쪽 혹은 오른쪽으로 이동시키는 연산을 말합니다.
0111 << 1 = 1110
1110 >> 1 = 0111
관계 연산자
A 는 B 보다 크거나같다( A >= B)
A 는 B 보다 작거나같다( A <= B)
A 는 B 는같다( A == B)
논리연산자
&(AND)
| (OR)
^(XOR)
AND연산 : 0011 & 0101 = 0001
OR연산 : 0011 | 0101 = 0111
XOR연산 : 0011 & 0101 = 0110
instance of
두 개체 타입을 비교하는 내장함수 입니다.
A instance of A = true
A instace of B = false
이처럼 개체의 타입이 맞는지 검증하는데 사용됩니다.
추가적으로 상속관계의 경우 자식개체는 부모개체의 내용을 모두 상속받았기 떄문에 자식 instance of 부모 는 true가 반환되지만 부모 instance of 자식은 자식의 모든내용을 가지고있지 못하기때문에 false가 반환됩니다.
class Parent{}
class Child extends Parent{}
Parent parent = new Parent();
Child child = new Child();
parent instanceof child == false
child instanceof parent == true
assignment(=) , operator
대입 연산자
A = B : A값에 B값을 대입한다.
A+=B : A값 B값 만큼 더한다.
A-=B : A값을 B값 만큼 뺀다.
A/=B : A값을 B만큼 나눈다.
이 처럼 변수에 피연산자의 값만큼 대입연산해주는 방식으로 동작합니다.
외에도 <<= , >>= , &= , |=, ^= 등이 있습니다.
화살표(->)연산자
화살표 연산자를 알기전에 함께사용하는 람다표현식을 알 필요가있습니다.
기존 1.8버전 전에는 내장형함수는 아래와같이 사용했습니다.
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
})
하지만 람다식을 활용한다면 훨씬 간결하게 코드를 구현할 수 있습니다.
new Thread(()->{
});
람다와 화살표함수에 대해서는 비중이 좀 있기때문에, 차후에 좀 더 깊이있게 알아보도록 하겠습니다.
3항 연산자
조건식 ? true : false
첫항에 조건식을 설정해주고 첫항이 참일경우 두번째 항이 입력되고 , 거짓일 경우 세번째항이 입력됩니다.
연산자 우선순위

'공부 > JAVA' 카테고리의 다른 글
[Java] 클래스 (0) | 2022.09.27 |
---|---|
[JAVA]제어문 (2) | 2022.09.20 |
자바 데이터 타입, 변수 그리고 배열 (0) | 2022.09.06 |
[JAVA] JVM 이란 무엇이며 자바코드는 어떻게 실행되는가 (0) | 2022.08.30 |
좋은객체지향의설계원칙5가지(SOLID) (0) | 2022.02.26 |