Java操作符

  1. java学习中的操作符有哪几种?
  2. 2.位操作符

    位操作符主要分为:与(AND)&、或(OR)|、异或(XOR)^、取反(NOT)~、移位操作符(<<,>>>,>>).

    (1)与:&,两个输出位都为1,输出1

    (2)或:|,任何一个输出位为1,输出1

    (3)异或:^,两个输出位不同,输出1

    (4)取反:~,输入为为1,输出0;输入位为0,输出1

    (5)移位操作符

    主要有三种:

    左移运算:<<,左移一位相当于乘以2,将操作数向左移动,空出的低位用0补齐

    有符号右移运算:>>,右移一位相当于除以2,将操作数向右移动,空出的高位是用0补齐还是1补齐要看原来移位之前的最高位是0还是1.如果移位之前最高位是0,则空出的高位全部补0,如果移位之前的最高位是1,则空出的高位全部补1

    无符号右移运算:>>>,将操作数向右移动,空出的高位全部用0补齐,忽略正负

    java学习中的操作符有哪几种?
  3. 3.比较运算符

    比较运算符可以对两个操作数进行比较,返回值为布尔型,即true或false。比较运算符主要分为6种:>、<、==、!=、<=、>=。比较操作符基本上只能用于比较基本数据类型,比较操作符比较的是数值的二进制,这里有个要注意的地方就是小数默认是以double的形式存的,如果是比较二进制的话0.3f==0.3,这个语句的返回值是false,因为0.3的二进制数是无穷无尽的

        进制转换

        0.3(十进制) = 0.0100110011001100(二进制)

        超出计算精度,结果保留十六位小数

        0.5(十进制) = 0.1(二进制)

    而0.3f是float类型长度为32位,double为64位,0.3f的二进制与0.3的二进制不一样(精度被截断了),而0.5是可以除尽的,所以二进制是一样的。

    程序验证:

    0.3f与0.3的判断

    当然,只有1除以2的n次方才会整除,所以以此来判断精度是不是会被截断。

    比较操作符还有一点要注意的是==和!=(其他的不行!)是可以来判断引用类型是否相同的

    字符的比较

    图中s1和s2存在的是同一个地址里,s3是new了一个新的地址,所以比较其实是比较引用的地址是否相等,所以在比较的时候我们可以看到s1和s2的引用是相等的,s3与其他的引用是不同的地址。

    java学习中的操作符有哪几种?
  4. 4.逻辑操作符

    主要有四种:与&、或|、短路与&&、短路或||。

    &和&&:两个操作数都是true才会返回true

    |和||:两个操作数只要有一个操作数是true就返回true

    两个虽然大致的运算规则差不多,但是在运算的过程是大不一样的。

    假设A1和A2,A1为false,A2位true,虽然A1&A2和A1&&A2的值都是返回false,但是在运算的过程中,A1&A2的时候,即使知道了,A1是false,还是会继续判断A2的值,而A1&&A2的时候,知道你A1是false的时候,就直接返回,不会判断A2的值,所以就成为短路与。同理||也是一样,要是A1为true,A2为false,那么判断的时候判断了A1为true之后,就不会再判断A2的值。所以写在if里面的判断的时候,一定要注意是否条件全部判断完,要根据情况,选择合适的逻辑操作符!

    java学习中的操作符有哪几种?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值