java的运算符有哪些?【JAVA教程】,java,运算符
Java的运算符可分为4类:算术运算符、关联运算符、逻辑运算符和位运算符。
算术运算符
Java的算术运算符分为一元运算符和二元运算符。一元运算符只需一个操纵数;二元运算符有两个操纵数,运算符位于两个操纵数之间。算术运算符的操纵数必需是数值范例。
1、一元运算符:
一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值范例的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量以后(如i++),二者的差异是:假如放在变量之前(如++i),则变量值先加1或减1,然后举行其他响应的操纵(主如果赋值操纵);假如放在变量以后(如i++),则先举行其他响应的操纵,然后再举行变量值加1或减1。
比方:
int i=6,j,k,m,n; j = +i;//取原值,即j=6 k = -i;//取负值,即k=-6 m = i++;//先m=i,再i=i+1,即m=6,i=7 m = ++i;//先i=i+1,再m=i,即i=7,m=7 n = j--;//先n=j,再j=j-1,即n=6,j=5 n = --j;//先j=j-1,再n=j,即j=5,n=5
在誊写时还要注重的是:一元运算符与其前后的操纵数之间不允许有空格,不然编译时会失足。
2、二元运算符
二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。个中+、-、*、/完成加、减、乘、除四则运算,%是求两个操纵数相除后的余数。
%求余操纵举例:
a % b = a - (a / b) * b
取余运算符既可用于两个操纵数都是整数的状况,也可用于两个操纵数都是浮点数(或一个操纵数是浮点数)的状况。当两个操纵数都是浮点数时,比方7.6 % 2.9时,盘算效果为:7.6 - 2 * 2.9 = 1.8。
当两个操纵数都是int范例数时,a%b的盘算公式为:
a % b = a - (int)(a / b) * b
当两个操纵数都是long范例(或其他整数范例)数时,a%b的盘算公式能够类推。
当列入二元运算的两个操纵数的数据范例差异时,所得效果的数据范例与精度较高(或位数更长)的那种数据范例一致。
比方:
7 / 3 //整除,运算效果为2
7.0 / 3 //除法,运算效果为2.33333,即效果与精度较高的范例一致
7 % 3 //取余,运算效果为1
7.0 % 3 //取余,运算效果为1.0
-7 % 3 //取余,运算效果为-1,即运算效果的标记与左操纵数雷同
7 % -3 //取余,运算效果为1,即运算效果的标记与左操纵数雷同
关联运算符
关联运算符用于比较两个数值之间的大小,其运算效果为一个逻辑范例的数值。关联运算符有六个:即是(==)、不即是(!=)、大于(>)、大于即是(>=)、小于(<)、小于即是(<=)。
比方:
9 <= 8 //运算效果为false
9.9 >= 8.8 //运算效果为true
'A' < 'a' //运算效果为true,因字符'A'的Unicode编码值小于字符'a'的
要申明的是,关于大于即是(或小于即是)关联运算符来讲,只需大于和即是两种关联运算都不建立时其效果值才为false,只需有一种(大于或即是)关联运算建立其效果值即为true。比方,关于9 <= 8,9既不小于8也不即是8,所以9 <= 8 的运算效果为false。关于9 >= 9,因9即是9,所以9 >= 9的运算效果为true。
逻辑运算符
逻辑运算符请求操纵数的数据范例为逻辑型,其运算效果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
真值表是示意逻辑运算功用的一种直观要领,其具体要领是把逻辑运算的一切大概值用表格情势悉数排列出来。Java言语逻辑运算符的真值表以下:
逻辑运算符的真值表
A B A&&B A||B !A A^BA&BA|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true
前两列是介入逻辑运算的两个逻辑变量,共有4种大概,所以表2.5共有4行。后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取差异数值时的运算效果值。
要申明的是,两种逻辑与(&&和&)的运算划定规矩基础雷同,两种逻辑或(||和|)的运算划定规矩也基础雷同。其区别是:&和|运算是把逻辑表达式悉数盘算完,而&&和||运算具有短路盘算功用。所谓短路盘算,是指体系从左至右举行逻辑表达式的盘算,一旦涌现盘算效果已肯定的状况,则盘算历程即被停止。关于&&运算来讲,只需运算符左端的值为false,则因不管运算符右端的值为true或为false,其终究效果都为false。所以,体系一旦推断出&&运算符左端的值为false,则体系将停止厥后的盘算历程;关于 || 运算来讲,只需运算符左端的值为true,则因不管运算符右端的值为true或为false,其终究效果都为true。所以,体系一旦推断出|| 运算符左端的值为true,则体系将停止厥后的盘算历程。
比方,有以下逻辑表达式:
(i>=1) && (i<=100)
此时,若i即是0,则体系推断出i>=1的盘算效果为false后,体系立时得出该逻辑表达式的终究盘算效果为false,因而,体系不继承推断i<=100的值。短路盘算功用能够进步顺序的运转速率。
发起读者:在顺序设计时运用&&和||运算符,不运用&和|运算符。
用逻辑与(&&)、逻辑或(||)和逻辑非(!)能够组合出种种大概的逻辑表达式。逻辑表达式重要用在 if、while等语句的前提组合上。
比方:
int i = 1; while(i>=1) && (i<=100) i++;//轮回历程
上述顺序段的轮回历程将i++语句轮回实行100次。
位运算符
位运算是以二进制位为单元举行的运算,其操纵数和运算效果都是整型值。
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0添补的右移(>>>)。
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的响应操纵的真值表完全雷同,其差异只是位运算操纵的操纵数和运算效果都是二进制整数,而逻辑运算响应操纵的操纵数和运算效果都是逻辑值。
位运算示例
运算符 称号 示例申明
& 位与x&y 把x和y按位求与
| 位或x|y 把x和y按位求或
~ 位非~x 把x按位求非
^ 位异或 x^y 把x和y按位求异或
>> 右移x>>y把x的列位右移y位
<< 左移x<<y把x的列位左移y位
>>> 右移x>>>y 把x的列位右移y位,左侧填0
举例申明:
1、有以下顺序段:
int x = 64; //x即是二进制数的01000000 int y = 70; //y即是二进制数的01000110 int z = x&y //z即是二进制数的01000000
即运算效果为z即是二进制数01000000。位或、位非、位异或的运算要领类同。
2、右移是将一个二进制数按指定挪动的位数向右移位,移掉的被抛弃,左侧移进的部份或许补0(当该数为正时),或许补1(当该数为负时)。这是由于整数在机械内部采纳补码示意法,正数的标记位为0,负数的标记位为1。比方,关于以下顺序段:
int x = 70; //x即是二进制数的01000110 int y = 2; int z = x>>y //z即是二进制数的00010001
即运算效果为z即是二进制数00010001,即z即是十进制数17。
关于以下顺序段:
int x = -70; //x即是二进制数的11000110 int y = 2; int z = x>>y //z即是二进制数的11101110
即运算效果为z即是二进制数11101110,即z即是十进制数-18。要透辟明白右移和左移操纵,读者须要控制整数机械数的补码示意法。
3、0添补的右移(>>>)是不管被挪动数是正数照样负数,左侧移进的部份一概补0。
其他运算符
1、赋值运算符与其他运算符的简便运用体式格局
赋值运算符能够与二元算术运算符、逻辑运算符和位运算符组合成简便运算符,从而能够简化一些经常使用表达式的誊写。
赋值运算符与其他运算符的简便运用体式格局
运算符 用法 等价于申明
+= s+=is=s+i s,i是数值型
-= s-=is=s-i s,i是数值型
*= s*=is=s*i s,i是数值型
/= s/=is=s/i s,i是数值型
%= s%=is=s%i s,i是数值型
&= a&=ba=a&b a,b是逻辑型或整型
|= a|=ba=a|b a,b是逻辑型或整型
^= A^=ba=a^b a,b是逻辑型或整型
<<=s<<=i s=s<<is,i是整型
>>=s>>=i s=s>>is,i是整型
>>>= s>>>=i s=s>>>i s,i是整型
2、方括号[]和圆括号()运算符
方括号[]是数组运算符,方括号[]中的数值是数组的下标,全部表达式就代表数组中该下标所在位置的元素值。
圆括号()运算符用于转变表达式中运算符的优先级。
3、字符串加(+)运算符
当操纵数是字符串时,加(+)运算符用来兼并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机械将自动将数值转换为字符串,这类状况在输出语句中很罕见。如关于以下顺序段:
int max = 100; System.out.println("max = "+max);
盘算机屏幕的输出效果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。
4、前提运算符(?:)
前提运算符(?:)的语法情势为:
<表达式1> ?<表达式2> : <表达式3>
前提运算符的运算要领是:先盘算<表达式1>的值,当<表达式1>的值为true时,则将<表达式2>的值作为全部表达式的值;当<表达式1>的值为false时,则将<表达式3>的值作为全部表达式的值。如:
int a=1,b=2,max; max = a>b?a:b; //max即是2
5、强迫范例转换符
强迫范例转换符能将一个表达式的范例强迫转换为某一指定数据范例,其语法情势为:
(<范例>)<表达式>
6、对象运算符instanceof
对象运算符instanceof用来测试一个指定对象是不是是指定类(或它的子类)的实例,如果则返回true,不然返回false。
7、点运算符
点运算符“.”的功用有两个:一是援用类中成员,二是指导包的层次等级。
运算符的优先级
以下按优先级从高到低的序次列出Java言语中的一切运算符,表中连系性一列中的“左右”示意其运算序次为从左向右,“右左”示意其运算序次为从右向左。
优先级 运算符 连系性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右左
3 * / % 左右
4 +(二元) -(二元) 左右
5 << >> >>> 左右
6 < > <= >= instanceof 左右
7 = = != 左右
8 &左右
9 ^左右
10 |左右
11 && 左右
12 || 左右
13 ?: 右左
14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右左
引荐进修:Java视频教程
以上就是java的运算符有哪些?的细致内容,更多请关注ki4网别的相干文章!