제 자바 연산자

컴퓨터의 가장 기본적인 사용 중 하나는 컴퓨터 언어로, 자바 변수를 조작하는 사업자의 풍부한 세트를 제공, 수학 연산을 수행하는 것입니다.

:에 의해 우리는 연산자, 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 대입 연산자, 연산자 조건, instanceof 연산자.

1. 산술 연산자

수학적 표현, 기능과 동일한의 수학에 자신의 역할에 사용되는 산술 연산자.

운영자 이름 기술
+ 부가 값은 조작자의 양측에 추가 될
- 뺄셈 마이너스 왼쪽 피연산자 오른쪽 피연산자
* 곱셈 오퍼레이터 작동 값의 양변
/ 분할 오른쪽 피연산자로 나눈 왼쪽 피연산자
% 나머지 오른쪽 피연산자로 나눈 왼쪽 피연산자의 나머지
++ 증가 피연산자의 값을 1 증가
- 감소 피연산자의 값을 1 감소

다음 코드 :

public static void main(String[] args) { int a = 5; int b = 10; System.out.println("“+” 运算:"+(a+b)); System.out.println("“-” 运算:"+(a-b)); System.out.println("“*” 运算:"+(a*b)); System.out.println("“/” 运算:"+(a/b)); System.out.println("“%” 运算:"+(a%b)); System.out.println("“++” 运算:"+(a++)); System.out.println("“--” 运算:"+(a--)); } 

출력 결과
'+'연산자 : 15
"-"동작 : -5
"*"동작 : 50
"/"조작 0
"%"동작 : 5
"+"연산자 : 5
"-"동작 : 6

또한, 두 개의 오퍼랜드가 정수 경우 분할 조작은, 결과는 정수 될 때, 소수 부분을 버리고, 부동 소수점 숫자가있는 경우 결과가 자동으로 전환이 부유한다. 피연산자가 모두 정수 경우, 부동 소수점 수있을 경우 작동 모듈은, 결과는 정수 될 때 결과 것 플로트 자동 전환

** 캐나다, 값 자체를 산출 감소 조작자로부터 특징, 접두사 증가 및 감소 (++ A, -a) 다음 연산 식, 증가 또는 감소 동작한다. 후위 증가 감소 (a ++는 A-)을 먼저 계산하는 식하고 증가 또는 감소된다. 우리는 예를들 :

 public static void main(String[] args) { int a = 5; int b1 = 10; int b2 = 10; int c1 = 10; int c2 = 10; System.out.println("前缀自增b1参与表达式计算后值为:"+(a*++b1)); System.out.println("后缀自增b2参与表达式计算后值为:"+(a*b2++)); System.out.println("前缀自减b1参与表达式计算后值为:"+(a*--c1)); System.out.println("后缀自减b2参与表达式计算后值为:"+(a*c2--)); } 

2. 비교 연산자

비교 연산자의 결과는 부울 타입이라고도 관계 연산자해야합니다

운영자 이름 기술
> 보다 큼 값은 조작자의 양측에 추가 될
< 이하 마이너스 왼쪽 피연산자 오른쪽 피연산자
== 같은 오퍼레이터 작동 값의 양변
> = 보다 크거나 같은 오른쪽 피연산자로 나눈 왼쪽 피연산자
<= 보다 작거나 같음 오른쪽 피연산자로 나눈 왼쪽 피연산자의 나머지
! = 같지 않음 피연산자의 값을 1 증가

예를 들어,

 public static void main(String[] args) { int a = 5; int b = 10; System.out.println(a > b ); System.out.println(a < b ); System.out.println(a == b ); System.out.println(a >= b );**** System.out.println(a <= b); System.out.println(a != b ); } 

출력 :
false로
참으로
거짓으로
거짓으로
참으로
사실에
주의 기본 데이터 형식이 비교 값이 같은지 비교하는 데 사용되며, 비교 연산자 "=="비교 기준 데이터 (참조 형식이 비교 기준 데이터 유형 equals와 동일 임 ) 문자 적 평등을 비교합니다.

3. 논리 연산자

운영자 이름 기술
&& 단락 및 그리고 만약 두 피연산자가 모두 해당하는 경우에만, 조건이 true가됩니다.
로직 및 그리고 만약 두 피연산자가 모두 해당하는 경우에만, 조건이 true가됩니다.
| | 짧은 또는 피연산자 중 하나에 해당하는 경우 두 조건 중 하나는 사실이다.
| 논리 또는 피연산자 중 하나에 해당하는 경우 두 조건 중 하나는 사실이다.
! 논리 NOT 피연산자의 로직 상태를 반전시킨다. 조건이 참이면, 논리 NOT 연산자는 false를 얻기 위해

논리 연산자 "와"연산자와 "또는"연산자는 두 가지를 가지고 우리는 단락 회로 호출 "&&". "||"우리는 단락 또는 전화 만남 잘못된 판단을 중지 문구와 "&&"왼쪽에서 오른쪽으로 판단이 결과는 거짓 아니다 논리와 "&"왼쪽에서 오른쪽으로 판단 끝날 때까지 . 문구 또는 "||"만남 사실 판단을 중지, 왼쪽에서 오른쪽으로 판단이 결과는 사실이 아니다 로직 또는 |이 끝날 때까지 왼쪽에서 오른쪽으로 판단 "". 우리는 예를들 :

 public static void main(String[] args) { int a = 5; int b = 10; //短路与,前一个表达式的值为false,不在判断下一个表达式,故a++不执行 System.out.print((a>b)&&(a++ == 1)); System.out.println(" a的值:"+ a); //逻辑与,前一个表达式的值为false,仍依次判断下一个表达式 System.out.print((a>b)& (a++ == 1)); System.out.println(" a的值:"+ a ); //短路或,前一个表达式的值为true,不在判断下一个表达式,故a++不执行 System.out.print((a<b)|| (b++ == 1)); System.out.println(" b的值:"+ b ); //逻辑或,前一个表达式的值为true,仍依次判断下一个表达式 System.out.print((a<b)| (b++ == 1)); System.out.println(" b的值:"+ b ); //非运算符 System.out.print(!(a<b)); } 

4. 비트 연산자

자바는 정수형 (int)를 적용 비트 연산자, 긴 정수 (롱), 짧은 정수 (짧은), 문자 (문자)와 바이트 (바이트) 유형 등을 정의합니다. 모든 비트 및 비트 연산에 작용하는 비트 연산자.

운영자 이름 기술
비트 단위 & 대응 비트가 1이면, 결과는 달리 0, 1
| 비트 단위 또는 대응 비트가 0이면, 결과는 달리 0, 1이다.
^ XOR 비트가 동일한 값에 대응한다면, 그 결과, 그렇지 않으면 0, 1
~ 비트 단위 플립 작업의 모든 숫자, 즉 0 1,1 제로가된다. 결과 : - (X + 1)
<<   값 << NUM, 값 NUM 비트를 비트에 의해 왼쪽으로 : 일반적인 형식 | 왼쪽 비트
>> 오른쪽으로 비트에 의해 서명 보통 형식 : 값 >> NUM, 값 NUM 오른쪽으로 비트에 의해 비트.
>>> 부호없는 오른쪽 시프트 비트 단위 형식은 일반적으로 : NUM >> 값, 값 NUM 올바른 위치 0으로 채워 공석 얻어진 움직임 가압.

우리는 예를들 :

public static void main(String[] args) { int a= 10; int b = 20; //a转化成二进制表示为:1010;b转化为二进制表示为:10100 //按位运算时,我们把a表示为:01010 System.out.println(a&b); //按位与运算,有零则为零,都为1则表示为1,与的结果为:00000,即十进制的0 System.out.println(a|b); //按位或运算,有1则为1,都为0则表示为0,或的结果为:11110,即十进制的30 System.out.println(a^b); //按位或运算,对应位置相同则为0,否则为1,取反的结果为:11110,即十进制30 } 

결과 :
0
30
30

다음은, 우리가 비트를 찾아, 내부 컴퓨터가 할 수있는 보완 수학, 등 원래의 코드로 우리가 사용하는 규칙을 인코딩하는 것은, 안티 코드는 우리의 정의는, 용이하게 할 전송의 형태를하고 컴퓨터 코드는 보완 변환을 형성한다. 따라서 원래의 코드 또는 양식을 편안 역 코드 변환을 위해 수행 비트이다. 양성 및 항 보체 코드와 원래의 코드가 동일한 수의 음의 부호 비트가 변경되지 않은 나머지 비트, +1의 보수 반전을 반전된다. 가장 높은 음의 부호 비트가 1입니다.
예를 들어,

  public static void main(String[] args) { int a= 10; int b= -10; System.out.println(~a); System.out.println(~b); } 

결과 실행 -11,9. 다음과 같이 비트 단위 11,110,101로서 00,001,010, : A는 양수, 보수 형태와 동일한 원래의 코드로 표현되어있다 이 경우에는 보수 형태 유의 , 안티 코드 표현 11,110,100, 환원로 변환되고 원래의 코드는 다음과 같이 표현된다 : 10,001,011, 즉 동일한 소수점 -11, B가 음이 보완은 다음과 같이 표현된다 : 비트 반전 00,001,001이다하여 이번에는 원래의 코드로, 즉, 아직 보수 형태이며, 11,110,110 00,001,001 자체, 즉 소수 9. 따라서, 비트 반전의 결과에 따라 같이 표현 될 수있다 - (X + 1)

다음으로, 우리는 예를 들어 주어진 시프트 연산자를 보면

public static void main(String[] args) { int a= 10; int b = -10; //int为4个字节,也就是32位,为了简化a表示为:00001010, // b为负数我们表示为:1000 0000 0000 0000 0000 0000 0000 1010 //b的补码形式为 1111 1111 1111 1111 1111 1111 1111 0110 System.out.println( a<<1 ); //按位左移,原则舍弃高位,低位补零表示为:00010100,即20 System.out.println(a>>1); //按位右移,原则舍弃低位,高位补零表示为:00000101,即5 System.out.println(a>>1); //按位右移,原则舍弃低位,高位补零表示为:10000101,即5 System.out.println(a>>>1); //按位右移,原则舍弃低位,高位补零表示为:0000010,即5 System.out.println(b>>1); //有符号按位右移,原则舍弃低位,符号位不变,其余高位补零原码表示为: // 1000 0000 0000 0000 0000 0000 0000 0101,即-5 System.out.println(b>>>1); //无符号按位右移,原则舍弃低位,高位补零(补码=原码)表示为: // 0111 1111 1111 1111 1111 1111 1111 011,即十进制的,2147483643 } 

출력 :
20
5
5
5
-5
2147483643
요약하면, 비트가 떠날 때, 고의 원칙, 낮은 제로 패딩 포기 원칙적으로 낮은 포기, 원칙적으로, 오른쪽으로 비트에 의해 서명은 서명 높은 제로 패딩 남아 변경되지 않은 비트 ; 부호없는 비트 오른쪽, 낮은, 높은 제로의 원칙을 포기. 작업에 다시, 시프트 연산하고, 기반 보완

할당 연산자

운영자 이름 기술
= 할당 왼쪽 피연산자에 할당 된 오른쪽 피연산자의 값
+ = 플러스와 과제 왼쪽 및 오른쪽 피연산자 피연산자 왼쪽 피연산자 합 할당  (a + = B A = A + B에 상당)
- = 감소와 과제 좌우 피연산자 감산 연산 왼쪽 피연산자 할당  (A- = B = AB 것은 (A)에 상당)
* = 곱하기 및 할당 좌우 피연산자 곱셈 연산 왼쪽 피연산자 할당  (a *가 B를 위해 = * = B가 동일하다)
\ / = 또한 대입에서 왼쪽 왼쪽 피연산자 할당 피연산자 피연산자 분할  (a가 / B = A = A / B에 해당)
(%) = 그리고 할당 모듈 왼쪽 왼쪽 피연산자 할당 모듈로 연산 직후 피연산자  (a는 %의 B를 위해 = (%) = B는 등가 임)
<< = 왼쪽 시프트 할당 왼쪽 시프트 할당 연산자  (A << = B가 동등는 << B를 =)
>> = 오른쪽 시프트 및 대입 우측 시프트 할당 연산자  (A는 B를 >> =하는 >> = B는 등가 임)
^ = 또한 대입에서 비트 단위 AND 연산자를 대입  (A는 B A = A ^ B와 동등하다 = ^)
& = 또한 대입에서 비트 단위 XOR 할당 연산자  (a &이 등가 인 = B는 A와 B를 =)
| = 또한 대입에서 按位或赋值操作符 (a|=b 等同于a = a|b)

基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取,他不是“等于”,它的作用是将一个表达式的值赋给一个左值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量,以上其他是复合的赋值运算符又称为带有运算的赋值运算符,也叫赋值缩写。等同与先按运算符运算后再把运算结果付给左值(见表格)。具体运算方法上边儿已经罗列,此处不再赘述

6. 条件运算符

条件运算符也叫三目运算符

语法:

(条件) ? 结果一 : 结果二; 

当条件成立,执行结果一,否则执行结果二。“?”前的值必须是true或flase
我们给出例子:

if(a<b) min=a; else min=b; 可以用下面的三目运算符来处理 min = a<b ? a : b; 

7. instanceof 运算符

instanceof运算符可以确定对象是否属于一个特定的类.该运算符是二目运算符,左边的操作元是一个对象,右边是一个类,当左边的对象是右边的类或子类创建的对象时,该运算符运算的结果是true,否则是false。,使用格式:( Object reference variable ) instanceof (class/interface type)

我们给出例子:

public static void main(String[] args) { String a = "name"; System.out.println(a instanceof String); System.out.println(a instanceof Object); } 

输出结果:true,true

8. 运算符优先级

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。相同优先级中,按结合顺序计算。

通常优先级由高到底的顺序依次是:
1. 括号级别最高,逗号级别最低;
2. 单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。
3. 除了单目运算符、赋值运算符和条件运算符,其他的运算符都是从左到右结合的。

추천

출처www.cnblogs.com/mztl-1122/p/11819396.html