자바 연산자
컴퓨터의 가장 기본적인 용도 중 하나는 컴퓨터 언어로서 자바 변수를 조작하는 오퍼레이터의 풍부한 세트를 제공하는 수학적 연산을 수행한다. 우리는 다음과 같은 그룹으로 연산자를 넣을 수 있습니다 :
- 산술 연산자
- 관계 연산자
- 비트 연산자
- 논리 연산자
- 할당 연산자
- 다른 연산자
산술 연산자
수식에 사용되는 산술 연산자, 자신의 역할과 같은 수학의 역할. 다음 표는 모든 산술 연산자를 보여줍니다.
테이블 예를 정수 변수 (10)의 값이 변수 B (20)의 값을 가정한다 :
운영자 | 기술 | 예 |
---|---|---|
+ | 양측의 운영자의 부가가치 - 덧셈 | A + B는 30와 동일 |
- | 빼기 - 마이너스 오른쪽 피연산자의 왼쪽 피연산자 | A - B는 -10 |
* | 곱셈 - 오퍼레이터 양쪽 승산 | A * B의 200와 같다 |
/ | 부문 - 오른쪽 피연산자로 나눈 왼쪽 피연산자 | B / A 2와 같다 |
% | 모듈 - 좌측 및 우측 피연산자 피연산자의 나머지 이외에 | B %의 (A)는 0 일 |
+ + | 증분 - 오퍼랜드 (1)의 값을 증가 | B + + 21과 같다 |
- | 감소는 - 피연산자 1의 값을 감소 | B - - (19)과 동일 |
예
다음의 간단한 예제 프로그램은 산술 연산자를 보여줍니다. 복사 및 다음 Java 프로그램을 붙여 Test.java 파일로 저장 한 후 컴파일하고이 프로그램을 실행 :
public class Test { public static void main(String args[]) { int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) ); System.out.println("a * b = " + (a * b) ); System.out.println("b / a = " + (b / a) ); System.out.println("b % a = " + (b % a) ); System.out.println("c % a = " + (c % a) ); System.out.println("a++ = " + (a++) ); System.out.println("a-- = " + (a--) ); // 查看 d++ 与 ++d 的不同 System.out.println("d++ = " + (d++) ); System.out.println("++d = " + (++d) ); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
a + b = 30 a - b = -10 a * b = 200 b / a = 2 b % a = 0 c % a = 5 a++ = 10 a-- = 11 d++ = 25 ++d = 27
관계 연산자
다음 표는 지원되는 Java 관계 연산자를 보여줍니다
10, 20의 변수 B 테이블 인스턴스 정수 변수 값입니다 :
운영자 | 기술 | 예 |
---|---|---|
== | 조건에 해당하는 경우 두 피연산자의 값이 동일, 동일 있는지 확인합니다. | (A == B는) (사실이 아니다) false입니다. |
! = | 두 피연산자의 값이 동일한 경우, 값이 조건에 해당하는 다음 다르면 확인한다. | (A! = B)는 사실이다. |
> | 이 조건이 참이면 다음 왼쪽 오퍼랜드의 값이 우측 피연산자의 값보다 큰지 확인한다. | (A> B)은 사실이 아니다. |
< | 이 조건이 참이면 다음 왼쪽 오퍼랜드의 값이 우측 피연산자의 값 미만인 확인한다. | (A <B)는 사실이다. |
> = | 이 조건이 참이면 다음 왼쪽 피연산자의 값보다 크거나 오른쪽 피연산자의 값과 같은 체크. | (A> = B)는 false입니다. |
<= | 이 조건이 참이면 다음 왼쪽 오퍼랜드의 값이 우측 피연산자의 값 이하인지 확인한다. | (A는 <= B) 사실이다. |
예
다음의 간단한 예제 프로그램은 관계 연산자를 보여줍니다. 복사 및 다음 Java 프로그램을 붙여 Test.java 파일로 저장 한 후 컴파일하고이 프로그램을 실행 :
public class Test { public static void main(String args[]) { int a = 10; int b = 20; System.out.println("a == b = " + (a == b) ); System.out.println("a != b = " + (a != b) ); System.out.println("a > b = " + (a > b) ); System.out.println("a < b = " + (a < b) ); System.out.println("b >= a = " + (b >= a) ); System.out.println("b <= a = " + (b <= a) ); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
비트 연산자
자바는 비트 타입 (int)를 정수에 적용 연산자 (긴) 긴 정수 짧은 정수 (짧은), 문자 (문자)와 바이트 (바이트) 및 기타 유형을 정의합니다.
모든 위치에서 비트 연산자 및 비트 연산. A = 60, B = 13 가정, 다음과 같이 자신의 바이너리 형식이 될 것입니다 :
A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A= 1100 0011
다음 표는 변수 B는 60와 13의 값은 정수 변수를 가정하면, 기본 작업을 비트 연산자를 나열합니다 :
운영자 | 기술 | 예 |
---|---|---|
및 | 비트 AND 연산자, 비트가 1 인 경우 두 피연산자의 비트가 제로가 아닌 결과 인 경우에만. | (A & B), 즉 0000 1100 (12)를 제공하는 |
| | 비트 OR 연산자만큼이 비트가 1로 설정되어있을 때 2 개의 피연산자 0이 아닌 결과를 가지고 비트. | (A | B) 즉, 00111101을 61주고 |
^ | 비트가 1로 설정된 경우에 비트 단위 XOR 연산자, 두 피연산자의 비트는 동일한 결과가 아니다. | (A ^ B) 즉, 00110001을 49주고 |
~ | 각 비트 피연산자를 내리고 비트 단위의 보수 연산자. | (~ A) -61은 11,000,011 즉, 획득 |
<< | 비트 시프트 연산자를 떠났다. 오른쪽 피연산자에 의해 왼쪽 피연산자는 숫자의 변화 지정된 수의 왼쪽 비트. | (240)의 << 2 11110000을 즉 |
>> | 비트 오른쪽 시프트 연산자입니다. 왼쪽 피연산자는 피연산자 오른쪽 오른쪽 비트로 비트 수를 지정한다. | >> 얻을 수 2 15 즉 1111 |
>>> | 비트 오른쪽 제로 연산자입니다. 왼쪽 피연산자를 눌러 오른쪽 피연산자 오른쪽으로 지정된 비트 수의 값은, 결과 공석은 0으로 채워되어 이동합니다. | >>> 2, 즉 0000 1111 (15)를 얻을 수 |
예
다음의 간단한 예제 프로그램은 비트 연산자를 보여줍니다. 복사 및 다음 Java 프로그램을 붙여 Test.java 파일로 저장 한 후 컴파일하고이 프로그램을 실행 :
public class Test { public static void main(String args[]) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ System.out.println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ System.out.println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ System.out.println("a ^ b = " + c ); c = ~a; /*-61 = 1100 0011 */ System.out.println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ System.out.println("a << 2 = " + c ); c = a >> 2; /* 15 = 1111 */ System.out.println("a >> 2 = " + c ); c = a >>> 2; /* 15 = 0000 1111 */ System.out.println("a >>> 2 = " + c ); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 15 a >>> 15
논리 연산자
다음 표는 기본 동작을 논리 연산자, 가설에 해당하는 부울 변수를 나열, 변수 B는 거짓
운영자 | 기술 | 예 |
---|---|---|
&& | 논리 AND 연산자를 호출합니다. 그리고 만약 두 피연산자에 해당하는 경우에만, 조건이 충족되어야합니다. | (A && B는) false입니다. |
| | | 논리 또는 운영자 호출합니다. 두 피연산자 중 어느 하나에 해당하는 경우, 조건은 true입니다. | (A | | B)는 사실이다. |
! | 논리 NOT 연산자를 호출합니다. 이것은 오퍼랜드의 로직 상태를 반전시킨다. 조건이 참이면, 논리 NOT 연산자 거짓 일 것이다. | ! (A && B는) 사실이다. |
예
다음의 간단한 예제 프로그램은 논리 연산자를 보여줍니다. 복사 및 다음 Java 프로그램을 붙여 Test.java 파일로 저장 한 후 컴파일하고이 프로그램을 실행 :
public class Test { public static void main(String args[]) { boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b)); System.out.println("a || b = " + (a||b) ); System.out.println("!(a && b) = " + !(a && b)); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
a && b = false a || b = true !(a && b) = true
할당 연산자
여기서, 할당 연산자를 지원하는 Java 언어이다 :
운영자 | 기술 | 예 |
---|---|---|
= | 단순 대입 연산자의 왼쪽 피연산자에 오른쪽 피연산자의 값 | C = A + B + B는 C에 할당 된 값을 제공합니다 |
+ = | 추가 및 대입 연산자, 그것은 왼쪽 피연산자에 할당을 추가하여 왼쪽 피연산자와 오른쪽 피연산자는 | C + = A는 C = C + A에 해당 |
- = | 왼쪽 피연산자와 할당 연산자를 저장, 그것은 왼쪽 피연산자와 빼기에 할당 된 오른쪽 피연산자는 | C는 - = A는 C = C에 해당 - |
* = | 곱셈 및 대입 연산자, 그것은 왼쪽 피연산자이고 오른쪽 피연산자는 왼쪽 피연산자에 할당 곱 | C * = A는 C = C의 * (A)에 해당합니다 |
/ = | 추가 및 할당 연산자에서는 왼쪽 피연산자와 왼쪽 피연산자에 할당 된 오른쪽 피연산자 부문이다 | C / = A는 C = C / A에 해당 |
(%) = | 모듈 및 대입 연산자, 그것은 왼쪽 피연산자와 모듈로하는 할당 후 왼쪽 피연산자에 오른쪽 피연산자입니다 | C의 % = A는 C = C의 % (A)에 해당합니다 |
<< = | 왼쪽 시프트 대입 연산자 | C는 << = 2는 C = C << 2에 해당 |
>> = | 오른쪽 시프트 대입 연산자 | C >> = 2는 C = C로 >> 2와 동일 |
& = | 비트 AND 대입 연산자 | C & = 2 =을 C C & 2와 동일 |
^ = | 비트 단위 XOR 대입 연산자 | C ^ = 2는 C = C ^ 2에 해당 |
| = | 비트 단위 OR 대입 연산자 | C는 | = 2는 C = C에 해당 | 2 |
예
간단한 예는 프로그램이 할당 연산자에 직면 보여줍니다. 복사 및 다음 Java 프로그램을 붙여 Test.java 파일로 저장 한 후 컴파일하고이 프로그램을 실행 :
public class Test { public static void main(String args[]) { int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c ); c += a ; System.out.println("c += a = " + c ); c -= a ; System.out.println("c -= a = " + c ); c *= a ; System.out.println("c *= a = " + c ); a = 10; c = 15; c /= a ; System.out.println("c /= a = " + c ); a = 10; c = 15; c %= a ; System.out.println("c %= a = " + c ); c <<= 2 ; System.out.println("c <<= 2 = " + c ); c >>= 2 ; System.out.println("c >>= 2 = " + c ); c >>= 2 ; System.out.println("c >>= a = " + c ); c &= a ; System.out.println("c &= 2 = " + c ); c ^= a ; System.out.println("c ^= a = " + c ); c |= a ; System.out.println("c |= a = " + c ); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
c = a + b = 30 c += a = 40 c -= a = 30 c *= a = 300 c /= a = 1 c %= a = 5 c <<= 2 = 20 c >>= 2 = 5 c >>= 2 = 1 c &= a = 0 c ^= a = 10 c |= a = 10
조건 연산자 (? :)
조건 연산자는 삼항 연산자로 알려져있다. 작업자는 세 개의 피연산자, 및 부울 표현식의 값을 판단 할 필요가있다. 이 연산자는 변수에 할당해야하는 값을 결정하기 위해 주로이다.
variable x = (expression) ? value if true : value if false
예
public class Test { public static void main(String args[]){ int a , b; a = 10; b = (a == 1) ? 20: 30; System.out.println( "Value of b is : " + b ); b = (a == 10) ? 20: 30; System.out.println( "Value of b is : " + b ); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
Value of b is : 30 Value of b is : 20
instanceof 연산자
이 조작은 오브젝트 인스턴스를 조작 대상이 특정 유형 (클래스 또는 인터페이스 유형)인지를 확인하기 위해 사용된다.
instanceof 연산자 다음 형식을 사용합니다 :
( Object reference variable ) instanceOf (class/interface type)
작업자는 좌측 변수 인 경우 개체 운영자 또는 오브젝트의 인터페이스 클래스 (클래스 / 인터페이스)의 오른쪽을 말한다, 결과는 마찬가지이다.
다음은 그 예이다 :
String name = 'James'; boolean result = name instanceOf String; // 由于name是String类型,所以返回真
비교되는 개체 유형의 오른쪽과 호환되는 경우, 작업자는 여전히 true를 반환.
다음의 예를 보면 :
class Vehicle {} public class Car extends Vehicle { public static void main(String args[]){ Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
true
자바의 연산자 우선 순위
때 하나 이상의 운영자는 누구 누구 후, 식에 나타납니다? 이것은 연산자 문제의 우선 순위에 관한 것이다. 다중 운영자 표현에서 연산자 우선 순위는 최종적으로 다양 와서 다른 결과가 발생할 수 있습니다.
예를 들어, (1 + 3) +이 표현이 가장 높은 우선 순위를 계산하는 경우 (3 + 2) * 2를 눌러 더하기 기호, 대답은 곱셈 가장 높은 우선 순위에 따라, 18, 대답은 14입니다.
또, X = 7 + 3 * 2, 곱셈 연산자는 더하기 연산자보다 높은 우선 순위를 가지고 있기 때문에, x는 13 대신 20을했다 경우 처음 3 * 2가 6, 7 플러스를 얻을 계산합니다.
테이블 상단 표에 표 하단에서 가장 낮은 우선 순위를 연산자의 가장 높은 우선 순위를 가지고있다.
범주 | 운영자 | 관련 |
---|---|---|
접미사 | () []. (도트 연산자) | 왼쪽에서 오른쪽 |
하나의 | + + -! ~ | 오른쪽에서 왼쪽으로 |
곱셈 | * / % | 왼쪽에서 오른쪽 |
첨가물 | + - | 왼쪽에서 오른쪽 |
배수량 | >> << >>> | 왼쪽에서 오른쪽 |
관계 | << = >> = | 왼쪽에서 오른쪽 |
같은 | ==! = | 왼쪽에서 오른쪽 |
비트 단위 AND | 및 | 왼쪽에서 오른쪽 |
비트 단위 XOR | ^ | 왼쪽에서 오른쪽 |
비트 단위 또는 | | | 왼쪽에서 오른쪽 |
논리와 | && | 왼쪽에서 오른쪽 |
논리 또는 | | | | 왼쪽에서 오른쪽 |
조건 | ? : | 오른쪽에서 왼쪽으로 |
할당 | = + = - = * = / = % = >> = << = & = ^ = | = | 오른쪽에서 왼쪽으로 |
콤마 | , | 왼쪽에서 오른쪽 |