当前位置:首页 > JAVA教程 > 正文内容

java的运算符有哪些?【JAVA教程】,java,运算符

搜教程4年前 (2020-01-01)JAVA教程170

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网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16818.html

标签: java运算符
分享给朋友:

“java的运算符有哪些?【JAVA教程】,java,运算符” 的相关文章

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

本篇文章给人人带来的内容是关于Java怎样建立和添补PDF表单域(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 表单域,能够按用处分为多种差别的范例,罕见的有文本框、多行文本框、暗码框、隐蔽域、复选框、单选框和下拉挑选框等,目标是用于收集用户的输入或挑选的数据。下...

如安在JSP页面内编写java代码?(代码示例)【JAVA教程】,JSP,编写java代码

如安在JSP页面内编写java代码?(代码示例)【JAVA教程】,JSP,编写java代码

在JSP页面中能够经由过程剧本元素编写java代码,下面本篇文章就来带人人认识一下JSP的剧本元素,相识在JSP页面内编写java代码的要领,愿望对人人有所协助。 Java Server Page(JSP)是一种经由过程运用servlet来掌握Web页面内容或表面的手艺。在Web页面中指定...

JSP与Servlet之间的区分【JAVA教程】,JSP,Servlet,java

JSP与Servlet之间的区分【JAVA教程】,JSP,Servlet,java

Servlet和JSP是两种最盛行的Java Web手艺,它们在Java Web应用顺序中生成动态内容。那末它们之间有什么区分?下面本篇文章就来带人人认识一下JSP与Servlet,简朴引见一下它们之间的区分,愿望对人人有所协助。【视频教程引荐:Java教程】 JSP是什么? JSP是一...

SpringBoot在IntelliJ IDEA中完成热布置的图文教程【JAVA教程】,SpringBoot

SpringBoot在IntelliJ IDEA中完成热布置的图文教程【JAVA教程】,SpringBoot

本篇文章给人人带来的内容是关于SpringBoot在IntelliJ IDEA中完成热布置的图文教程,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 现实开辟过程当中,经常会修正代码重启运用,每次手动重启既贫苦开辟效力又低,所以热布置关于开辟来讲显得十分必要,本文将引见如安在I...

java中string的相干学问引见(代码示例)【JAVA教程】,java

本篇文章给人人带来的内容是关于java中string的相干学问引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 1、两种建立体式格局 String str1 = "abc";        //字面量建立 String str2 = new String(...

SpringBoot跨域的引见(代码示例)【JAVA教程】,SpringBoot

SpringBoot跨域的引见(代码示例)【JAVA教程】,SpringBoot

本篇文章给人人带来的内容是关于SpringBoot跨域的引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 媒介:公司的SpringBoot项目出于某种原因,常常样处置惩罚一些跨域要求。 一。之前经由历程查阅相干材料本身写的一个处置惩罚跨域的类,以下。 1.1...