컴퓨터의 가장 기본적인 사용 중 하나는 컴퓨터 언어로, 자바 변수를 조작하는 사업자의 풍부한 세트를 제공, 수학 연산을 수행하는 것입니다.
:에 의해 우리는 연산자, 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 대입 연산자, 연산자 조건, 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. 除了单目运算符、赋值运算符和条件运算符,其他的运算符都是从左到右结合的。