java基础知识总结(3)

运算符

(1)定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较。
(2)分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符。
算数运算符
在这里插入图片描述
(1)/(除法运算):除法运算就是我们数学中的除法,但是在java里使用我们有需要注意的地方,当我们除数和被除数都是int类型的时候,我们的结果也是一个除数,这样就会有一些问题.例如:我们做12/5,我们在数学中的结果时2.4,但是程序中,我们知道,int类型的和int类型的相除不会出现小数,所以他的结果是2,我们将他的结果赋值给double类型的变量也不可以,得出来是2.0,因为他是先算出2来,然后将2这个整数类型自动提升为double类型的。那我们如何让他输出2.4呢?其实也很简单。也是用自动类型提升说明,因为容量大的和容量小的计算,他会自动提升为容量大的,所以我们可以把除数和被除数其中一个或全部改为double类型的就可以了。以下是我的代码和结果截图:
在这里插入图片描述
在这里插入图片描述
(2)%(取余运算):就是求余数的运算。例如:15%10=5(注意:如果被摸数是负数那么余的结果就为负数,和模数无关。例如:-15%10=-5)
(3)++/–:自增1和自减1运算符。我们先定义一个变量a,有a++和++a。a++就是先取a运算,后做自增运算,++a是先做自增运算后做取a运算。–和++的情况一样,我们就不再说明。
**注意:**a++和++a虽然得到的结果和a=a+1的结果是一致的,但是当a为short等容量小的内存时,a=a+1时不成立的,因为根据自动类型提升可知,a+1的结果时一个int类型的。但是a++和++a的结果不改变原本的数据类型。(特别的,byte=127时,++的值为-128)。

赋值运算符

=
(1)当”=“两边数据类型不一致时,可以使用自动类型提升或强制类型转换原则进行处理。
(2)支持连续赋值。例:a1 = b1 = 10;
(3)扩展运算符:+=,-=,/=,%=。
注意:+=,-=,/=,%=这些运算符做运算时,不会改变原本的数据类型。当我们+2或+更多时,有一下两种方法:a += 2;或a = a + 2;但是由于第二种方法可能错误,因为int类型不能赋值给容量小的类型,所以我们一般用第一种方法。当我们+1时除了以上两种方法还有a++,这里推荐使用a++,因为它的代码小,开发效率高。

比较运算符

在这里插入图片描述
(1)比较运算符的结果都为布尔类型。
(2)”==“不是”=“,”=“时赋值运算符。
(3)相等于和不等于这两个运算符不但可以用在数值类型之间还可以使用在其他的引用类型之间(例如:String)。但是除了它俩其余的运算符只能用在数值类型。

逻辑运算符(只适用于boolean类型的变量)

(1)&与&&
&为逻辑与,&&为短路与。他们都只有运算符前后都为true时结果才为true。其余的情况都为false。
注意:
&:为逻辑与,不管运算符前面的值是什么,它都要做运算符后面的运算。
&&:短路与,当运算符前面的值为false时,它就不再做运算符后面的运算。
(2)|与||
|为逻辑或,||为短路或。运算符前后只要有一个true他的结果就为true,前后都为false结果才为false。
|:为逻辑或,不管运算符前面的值是什么,它都要做运算符后面的运算。
||:为短路或,当运算符前面的值为true时,它就不再做运算符后面的运算。
(3)!(非)
就是和原值相反。true–>false,false–>true
(4)^(逻辑异或)
只有当运算符前后的值不相等时才为true。

位运算符(了解即可)

在这里插入图片描述
在这里插入图片描述
(1)&、|、!如何区分时逻辑运算符还是位运算符?
看运算符两边的数据类型,如果为boolean类型则为逻辑运算符,如果为具体的数值,则为位运算符。
(2)<<:在一定范围内每向左移动一位(拿0补),则相当于乘一个2。
(3)>>:在一定范围内每向右移动一位(正数拿0补,负数拿1补),则相当于除一个2。
(4)>>>:无符号右移,不管正数还是负数,右移了之后都拿0补。
(5)&:底层二进制进行与运算。
(6)|:底层二进制进行或运算。
(7)^:底层二进制进行异或运算。
(8)~:底层二进制包括符号位全部取反。

三元运算符

(1)格式:(条件表达式)? 表达式1 : 表达式2;
如果条件表达式的结果为true,则执行表达式1。
如果条件表达式的结果为false,则执行表达式2。
(2)条件表达式的结果为boolean类型。
(3)表达式1和表达式2要求是一致的,可以统一成一种类型。
(4)表达式1和表达式2也可以写成三元运算符,就像一个套娃。
(5)凡是可以用到三元运算符的地方都可以用if-else来表示,但是if-else表示的不一定能用三元运算符来表示。
(6)能同时用三元表达式和if-else同时表示的,优先使用三元运算符。原因:简介,执行效率高。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值