자바 - 연산자

Java 2018. 7. 23. 03:00

연산자는 하나, 둘 또는 세 개의 피연산자에 대해 특정 종류의 연산을 수행하고 결과를 생성하는 기호입니다. 

연산자의 유형과 피연산자는 피연산자에 대해 수행된 연산의 종류와 생성된 결과의 유형을 결정합니다.

Java의 연산자는 다음 두 가지 기준에 따라 분류 할 수 있습니다.

  • 조작하는 피연산자의 수 : 피연산자 수에 따라 3 가지 유형의 연산자가 있습니다. 연산자는 피연산자 수에 따라 단항, 2 진 또는 3 항 연산자라고합니다. 연산자가 하나의 피연산자를 사용하면 단항 연산자가 호출됩니다. 두 개의 피연산자가 필요한 경우 이진 연산자를 호출합니다. 세 개의 피연산자가 필요하면 삼항 연산자를 호출합니다.
  • 피연산자에 대해 수행하는 연산 유형 : 피연산자에 대해 수행하는 연산의 종류에 따라 연산자는 산술 연산자, 관계 연산자, 논리 연산자 또는 비트 연산자라고합니다.

대입 연산자 (=)

대입 연산자 (=)는 변수에 값을 할당하는데 사용됩니다. 이진 연산자입니다. 두 개의 피연산자가 필요합니다. 오른쪽 피연산자의 값은 왼쪽 피연산자에 할당됩니다. 왼쪽 피연산자는 변수여야합니다. 예를 들어,

//26 is the right-hand operand.
//num is the left-hand operand, which is a variable of type int.
int num = 26;

Java는 대입 연산자의 오른쪽 피연산자의 값이 왼쪽 피연산자의 데이터 유형에 할당 호환된다는 것을 보장합니다. 그렇지 않으면 컴파일 타임 오류가 발생합니다. 참조 변수의 경우, 오른쪽 피연산자가 나타내는 객체가 왼쪽 피연산자로 참조 변수에 할당 호환되지 않으면 소스 코드를 컴파일하고 런타임 오류가 발생할 수 있습니다.

산술 연산자

(+, -, *, /)와 같은 연산자는 Java의 산술 연산자라고하며 숫자형 피연산자에서만 사용할 수 있습니다. 즉, 산술 연산자에 대한 두 피연산자는 모두 byte, short, char, int, long, float 및 double 유형 중 하나여야합니다. 이 연산자는 부울 기본 유형 및 참조 유형의 피연산자를 가질 수 없습니다.

A) 이진 산술 연산자

운영자기술
+추가 - 연산자의 양쪽에 값을 추가합니다.
-빼기 - 왼손 피연산자에서 오른쪽 피연산자를 뺍니다.
*곱셈 - 연산자의 양쪽에 값을 곱합니다.
/나눗셈- 오른손 피연산자로 왼손 피연산자를 나눕니다.
%나머지 - 오른손 피연산자로 왼손 피연산자를 나누고 나머지를 반환합니다.


B) 단항 산술 연산자

운영자기술
+단항 연산자와 연산자; 양수 값을 나타냅니다 (숫자는이 값이 없으면 양수입니다).
-단항 마이너스 연산자; 표현식 값을 무효화합니다.
++증분 연산자; 값을 1 씩 증가시킨다.
-감소 연산자; 값을 1 씩 줄입니다.
!논리 보수 연산자; 부울 값을 반전한다.


문자열 연결 연산자 (+)

+ 연산자가 오버로드되었습니다. 연산자는 둘 이상의 기능을 수행하는 데 사용되면 오버로드라고합니다. 지금까지 두 숫자를 더하기 위해 산술 연산자를 사용하는 것을 보았습니다. 또한 두 문자열을 연결하는 데 사용할 수도 있습니다. "abc"및 "xyz"와 같은 두 문자열은 + 연산자를 "abc"+ "xyz"로 연결하여 새 문자열 "abcxyz"를 생성 할 수 있습니다.

String str1 = "Hello";
String str2 = " World";
String str3 = str1 + str2; // Assigns "Hello World" to str3

문자열 연결 연산자는 기본 및 참조 데이터 유형 값을 문자열에 연결하는데에도 사용됩니다.

int num = 26;
String str1 = "Alphabets";
String str2 = num + str1; // Assigns "26Alphabets" to str2

String 변수에 널 참조가 들어 있으면, 연결 연산자는 "null"문자열을 사용합니다.


관계 연산자

모든 관계 연산자는 2 진 연산자입니다. 즉, 두 개의 피연산자를 사용합니다. 관계 연산자에 의해 생성 된 결과는 항상 부울 값 true 또는 false입니다.

자바에서 사용 가능한 모든 관계 연산자를 아래에서 살펴 보겠습니다.

운영자기술
==두 피연산자의 값이 같거나 같은지 확인합니다. 예이면 condition이 true가됩니다.
! =두 피연산자의 값이 같거나 같은지 여부를 확인합니다. 값이 같지 않으면 조건이 true가됩니다.
>왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 검사하고, 참이면 조건이 참이됩니다.
<왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은 지 검사하고, 참이면 조건이 참이됩니다.
> =왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 검사하고, 참이면 조건이 참이됩니다.
<=왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 검사하고, 예이면 조건이 참이됩니다.

부울 논리 연산자

모든 부울 논리 연산자는 부울 피연산자에서만 사용할 수 있습니다. 

운영자기술
!피연산자가 false이면 true를 반환하고 피연산자가 true이면 false를 반환합니다.
&&두 피연산자가 모두 참이면 true를 반환합니다. 피연산자 중 하나가 거짓이면 false를 반환합니다.
&두 피연산자가 모두 참이면 true를 반환합니다. 피연산자 중 하나가 거짓이면 false를 반환합니다.
||어느 피연산자가 참이면 true를 반환합니다. 두 피연산자가 모두 거짓이면 false를 반환합니다.
|어느 피연산자가 참이면 true를 반환합니다. 두 피연산자가 모두 거짓이면 false를 반환합니다.
^피연산자 중 하나가 참이면 true를 반환하지만 둘 다 참이면 true를 반환합니다.두 피연산자가 같으면 false를 반환합니다.
& =두 피연산자가 모두 true로 평가되면 & = true를 반환합니다. 그렇지 않으면 false를 반환합니다.
| =어느 피연산자가 참으로 평가되면! =는 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
^ =두 피연산자가 서로 다른 값으로 평가되는 경우, 즉 피연산자 중 하나가 참이지만 둘 다 아닌 경우 ^ =은 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

아래 사항에 유의하시기 바랍니다 :

1) 논리적 AND 연산자 (&)는 논리적 단락 AND 연산자 (&&)와 동일한 방식으로 작동합니다 (단 하나의 차이점 제외). 논리 AND 연산자 (&)는 왼쪽 피연산자가 false로 평가되는 경우에도 오른쪽 피연산자를 계산합니다. 
2) 논리 OR 연산자는 논리 단락 OR 연산자와 동일한 방식으로 작동하지만 한 가지 차이점이 있습니다. 논리 OR 연산자는 왼쪽 피연산자가 true로 평가되는 경우에도 오른쪽 피연산자를 계산합니다.


비트 연산자

비트 연산자는 피연산자의 개별 비트를 조작합니다. Java는 정수, long, int, short, char 및 byte와 같은 여러 비트 연산자를 정의합니다.

운영자기술
&이진 AND 연산자는 두 피연산자 모두에 비트가 있으면 결과에 복사합니다.
|이진 OR 연산자는 피연산자에 비트가 있으면 비트를 복사합니다.
^바이너리 XOR 연산자는 비트가 하나의 피연산자에 설정되었지만 둘 다 설정되지 않은 경우 비트를 복사합니다.
~ ~Binary Ones Complement Operator는 단항이고 'Flipping'비트의 효과가 있습니다.
<<이진 왼쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 왼쪽으로 이동합니다.
>>이진 오른쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다.
>>>오른쪽 제로 채우기 연산자를 시프트하십시오. 왼쪽 피연산자 값은 오른쪽 피연산자에 의해 지정된 비트 수만큼 오른쪽으로 이동되고 시프트 값은 0으로 채워집니다.


삼항 연산자 (? :)

Java에는 하나의 조건부 연산자가 있습니다. 세 개의 피연산자가 필요하므로 삼항 연산자라고합니다.

boolean-expression ? true-expression : false-expression

"?"와 ":"의 두 기호는 삼항 연산자를 만듭니다. boolean-expression이 true로 평가되면 true-expression을 평가합니다. 그렇지 않으면 false-expression을 평가합니다.

'Java' 카테고리의 다른 글

자바 - 정적 변수(Static Variable), 정적 메서드(Static Method)  (0) 2018.07.23
자바 - 클래스 생성하는 방법  (0) 2018.07.23
자바 - 데이터 타입  (0) 2018.07.23
자바 - 변수  (0) 2018.07.23
자바 - 주석  (0) 2018.07.22
블로그 이미지

귀염둥이채원

,