java操作符_java操作符

"" :""是比较运算符,一定要注意的是,"=="是比较左右两边的值是否相等,如果相等返回true,不等返回false。比如

int a = 2;

int b = 3;

System.out.println(a == b);

以上代码最终输出的是false。也就是不等。还有一种情况是以下情况:

String a = "2";

String b = "2";

System.out.println( a == b);

那么可以想一下以上代码,输出结果是什么呢?输的结果是false,因为String是引用类型,使用"=="比较的是他们两个对象在内存中的地址值,因为是两个对象,地址值肯定不一样的。再看另一种情况:

String a = "2";

String b = a;

System.out.println( a == b);

如上代码,输出为true,为什么呢?因为在第二行 b = a;中并没有创建新的对象,只不过是将a在内存中的地址值赋给了b,所以比较的是同一个地址值,那么肯定就为true。这里可能会有人误解一点就是将 2 赋值给了b,这里并不是这样了,赋的值是a的地址值,也就是引用。

优先级

借用书中的代码:

int x = 1;

int y = 2;

int z = 3;

int a = x + y - 2 / 2 + z;

int b = x + (y - 2) / (2 + z);

System.out.println("a = " + a + "b=" + b);

输出结果为: a = 5 b = 1

以上代码只是括号的区别,其他都一样,但是运算结果完全不同,由此可以看出在java中括号优先级大于乘除,乘除大于加减,其次从左至右依次运算。最终将计算结果赋值与左边的变量。

还有一点需要说明在输出语句中"+"也出现了,在这种上下文环境中,"+"意味着连接符,不做运算,起拼接作用,当编译器遇到String后面跟着一个"+"后,而之后有跟着一个非String类型的元素时,就会尝试将这个元素转为String类型。

算术操作符

这里主要说一下取模运算:

取模(%) : 取模就是也就是我们数学中的取余,但是java当中使用取模运算符后得到就是余数,不会进行四舍五入,直接舍弃掉整数外的部分。比如 int a = 3 % 2 那么a的值就为1。

还有一个需要注意的就是 a += 4; 和 a = a + 4除了写法不同其余是完全一样的,其余四则 运算都一样,前者代码可读性比较差,后者更容易让别人看懂。

逻辑操作符

与、或、非(&、|、!)

与(&): 两边为true才为true,一边为false则为false。

或(|): 其中一边为true或false则为true,两边都为true或false则整体为false。

非(!): 这个就比较好理解了,通常是 != 为不等于,还有另一个就是取反。

另外需要注意的是,&和&&、|和|| 是不一样的,虽然结果一样,但是会有一个短路的情况,就是一旦可以确定表达式的值,那么之后的表达式就不会执行了。也就是短路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值