java 运算符

算术运算符

在这里插入图片描述

++y(­­y):先将 y 的值自增(自减)1,然后再在当前表达式中使用 y 的值。
y++(y­­):先在当前表达式中使用 y 的值,然后再将 y 的值自增(自减)1。

int a = 25;
int b = 4;				
int c = a+b; //加
System.out.println("a+b="+ c);
int d = a-b; //减
System.out.println("a-b="+d);
int e = a*b; //乘
System.out.println("a*b=" + e);
结果为:
a+b=29
a-b=21
a*b=100

关系运算符

在这里插入图片描述

equals 用于判断引用类型的值
== 在基本数据类型的时候就是比较值是否相同,在引用类型时是比较地址

String a="abc";
String b="abc";
System.out.println(a==b);
  • a==b和a.equals(b);结果都会为true,因为没有用new去新建对象,其实a和b都指向的是同一个String对象"abc",改成:
String a=new String("abc");
String b=new String"abc");
System.out.println(a==b);


逻辑运算符

在这里插入图片描述

int intB = 10; //短路与
if(intB <11 && intB++ <9){}
System.out.println("intB="+ intB);
int intk = 10;	//不短路与
if(intk <11 & intk++ >9){}
System.out.println("intk="+ intk);
int intp = 10; //短路或 ||
if (intp >11 || intp++<9) {}
System.out.println("intp="+intp);
int into = 10; //不短路或 |
if (into <11 | into++<9) {}
System.out.println("into="+into);
if(false ^ true){ //异或  ^
System.out.println("a");
}
if (!(1 > 2)) {// ! 非 
System.out.println("!(1>2)");
}
————————————————
结果为:
intB=11
intk=11
intp=11
into=11
a
!(1>2)

赋值运算符

在这里插入图片描述

int intZ=11;
System.out.println(intZ*=2); //相乘
int intQ=11;
System.out.println(intQ/=2); //相除    取整
int intq=11;
System.out.println(intq+=2); //相加
int inta=11;
System.out.println(inta-=2); //相减
结果为:
22
5
13
9

三元运算符

Java 提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的 if-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:

result = a>b ? a : b;

其中,a>b 是一个布尔表达式。当 a>b 为真时,执行 a, 否则就执行 b。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。

位运算符

1.& 按位与
2.| 按位或
3.^ 按位异或
4.~ 取反
5.>> 右移
6.<< 左移

1 、& 运算符

&是二元运算符,它以特定的方式组合操作数中对应的位 如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0
1 & 3的结果为1
来看看它的怎么运行的:

1的二进制表示为 0 0 0 0 0 0 1
3的二进制表示为 0 0 0 0 0 1 1 根据 & 的规则 得到的结果为 0 0 0 0
0 0 0 1,十进制表示就是1

只要任何一位是0 &运算的结果就是 0,所以可以用&把某个变量不必要的位设为0, 比如某个变量的二进制表示为 0 1 0 0 1 0 0 1, 我想保留低4位,消除高4位 用 & 0x0F就可以了(注:0x0F为16进制表示法,对应的二进制为 0 0 0 0 1 1 1 1),这个特性在编码中使用很广泛。

2 、| 运算符
| 跟 & 的区别在于 如果对应的位中任一个操作数为1 那么结果就是1
1 | 3 的结果为3

3、 ^ 运算符
^运算符跟 | 类似,但有一点不同的是 如果两个操作位都为1的话,结果产生0

     0 1 0 0 0 0 0 1
     0 1 0 1 1 0 1 0 
 =   0 0 0 1 1 0 1 1

4 、~ 运算符
~是对位求反 1变0, 0变1

5 、移位运算符
移位运算符把位按指定的值向左或向右移动

  • << 向左移动 而 >> 向右移动, 超过的位将丢失,而空出的位则补0

如 0 1 0 0 0 0 1 1(十进制67) 向左移动两位67<<2将变成
0 0 0 0 1 1 0 0
向右移动两位67>>2则是 0 0 0 1 0 0 0

前面提到2向前移动1位变成4 利用这个特性可以做乘法运算(在不考虑溢出和符号位的情况下)

2 << 1 =4
3 << 1 = 6
4 << 1 = 8
同理 >> 则可以做除法运算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值