运算符(java)

目录

上节回顾

判断题1:

判断题2:

选择题3:

【拓展】

注意:

算术运算符 

自增自减运算符:

取模运算符(与C语言不同)

赋值运算符:

关系运算符

逻辑运算符(重点)

短路逻辑运算符

位运算符

条件运算符

运算符的优先级


上节回顾

判断题1:

解析:小数不是一个精确的数字,会造成数据丢失,故选B; 

判断题2:

选择题3:

解析:

B不能编译通过;C中 / 符号可以直接被输出,\"会转义为双引号,所以会输出:/"hello/"

所以答案为A。

【拓展】

UNIX 操作系统设计了这种路径分隔法,它使用反斜杠:/。

Windows 操作系统设计了这种路径分隔法,它使用 \。 理论上来说都是斜杠。

目前因为大部分的机器都是UNIX 操作系统,所以建议以后可以优先使用这个反斜杠,作为路径的分割

注意:
  • boolean类型不能和其他类型进行转换 
  • 隐式转换:byte<short<int<long<float<double

取值范围小的和取值范围大的进行运算,小的会提升为大的,再进行运算

byte,short,char三种类型的数据在进行运算的时候,会直接先提升为int,然后再进行计算

  • 强制转换:如果把一个取值范围大的数值赋值给一个取值范围小的变量,是不允许直接赋值的,如果一定要这么做就需要加入强制转换
int a = 10, b = 20;
System.out.println("a+b=" + a + b);//a+b=1020
System.out.println(a + b + "a+b");//30a+b

字符串只有“+”操作,如果字符串前面有逻辑运算,先进行逻辑运算,再进行拼接操作

算术运算符 

自增自减运算符:
int m = 10;
m = m++;
System.out.println(m);//10

又是一个坑!C语言中显示11(与操作表、局部变量表有关)--了解即可 

取模运算符(与C语言不同
 System.out.println(11.5 % 2);//1.5

做除法和取模时,右操作数不能为0

取模操作结果的正负取决于右操作数的正负

操作数可以是小数,结果是小数

System.out.println(10 / 0);//报错

赋值运算符:
+=,-=,*=,/=底层都隐藏了一个强制类型转换(一般注意不到)
int a = 4;
double b = 5.0;
a += b;//默认为:a=(int)(a+b)
System.out.println(a);

关系运算符

结果都是boolean类型

注意:当需要多次判断时,不能连着写,比如3<a<5(出现报错),java程序与数学是有区别的 (true,false不能与整数比较)

逻辑运算符(重点)

&&逻辑与(且):两边都为真结果才是真

||逻辑或:两边都为假结果才是假

^逻辑异或:相同为false,相异为true

!逻辑非:取反

短路逻辑运算符

(提高运算效率、较为常用)

&&:短路与,结果和&相同,但是有短路效果

||:短路或,结果和|相同,但是有短路效果

&|,无论左边true false,右边都要执行

&& ||,如果左边能确定整个表达式的结果,右边不执行

ctrl+Alt+L自动格式化代码

位运算符

java中数据存储的最小单位是字节,而数据操作的最小单位是比特位,每个字节由8个二进制比特位组成,多个字节组合在一起可以表示各种不同的数据

位运算符主要有四个:& | ~ ^,除~是一元运算符外,其余都是二元运算符

位操作表示 按二进制运算 计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制位的每一位依次进行计算

&按位与

| 按位或

~按位取反

^按位异或(相同为0,相异为1)

0^n=n

>>>无符号右移:最右侧位不要,最左侧补0

public class Test {
    public static void main(String[] args) {
        byte a=-1;
        System.out.println(a>>>1);//2147483647
        System.out.println(a>>1);//-1
    }
}

注意:

  1. 左移1位。相当于原数字*2,左移N位,相当于原数字*2的N次方
  2. 右移1位,相当于原数字/2,右移N位,相当于原数字/2的N次方
  3. 由于计算机计算移位效率高于计算乘除,当某个代码正好乘除2的N次方的时候可以用移位运算代替
  4. 移动负数位或者移位位数过大都没有意义

条件运算符

只有一个:

表达式1?表达式2:表达式3

当表达式1的值为true时,整个表达式的值为表达式2的值

当表达式1的值为false时,整个表达式的值为表达式3的值

boolean flg = true == true ? false ? true : false : true;
System.out.println(flg);//false

运算符的优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值