공부/JAVA

[Java] 연산자

Dr.thousand 2022. 9. 14. 12:00
728x90

학습할 것


  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • 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

첫항에 조건식을 설정해주고 첫항이 참일경우 두번째 항이 입력되고 , 거짓일 경우 세번째항이 입력됩니다.


연산자 우선순위

출처 :&nbsp;https://blog.naver.com/piyoro/221785251188


 

728x90
반응형