Development/Java

[Java, 개념] 연산자

컴공희 2022. 7. 20. 13:27

Java 에서 놓치기 쉬운 연산자 내용을 다루겠습니다. 

 

Java에서 연산자중 논리연산자와 비트 연산자가 있습니다. 

 

비트 연산자는 단어 그대로 비트 단위로 논리연산을 진행하며 비트 값을 반환하고 

논리연산자는 True or False 값만을 반환합니다.

 

연산은 조금씩 다른데, 연산자 표기법은 아래 표와 같습니다. 

 

논리연산자 vs 비트연산자 


 비트 연산자

AND &
OR |
XOR ^

논리연산자

AND &&
OR ||
XOR ^

 


위 값은 비트 연산자 이기 때문에 True가 아닌 2의 값이 출력됩니다. 

논리연산자와 전혀 다른 결과가 반환되므로 해깔리지 않도록 주의해야합니다. 

 

 

 

논리연산자 비교

비교 연산자에서 기본자료형과 참조자료형은 차이가 있습니다. 

참조 자료형은 스택공간에 힙주소에 있는 실제 데이터에 주소값이 적혀있습니다. 

 

비교연산자는 스택 메모리에 있는 값을 통해서 비교를 진행합니다. 

따라서 기본 자료형은 실제 데이터 값이 스택 메모리안에 저장되어 있기때문에 실제 데이터 값을 비교하고 

참조 자료형은 스택메모리 안에 실제데이터가 사는 곳의 주소가 적혀있기 때문에 주소값을 비교하여 비교연산을 진행합니다. 

 

 

 

 

 

쇼트 서킷이란?

 

논리연산자에서 True or False 연산의 값은 무엇일까요? 

True 입니다. 앞이 True이면 뒤에 어떤 값이 와도 True이기 때문에 상관없습니다. 

컴퓨터도 마찬가지로 효율적인 작업을 위해서 뒤에 연산을 생략합니다.

즉, 앞에 결과로 인해 답이 확실한 경우 뒤에 연산을 생략하는 것을 말합니다.

이를 쇼트서킷이라고 합니다.