java常见运算符

一、算术运算符

 加:+,减:—,乘:*,除:/,取余(取模):%,递增:++,递减:--。

加减乘没什么好说的,主要介绍一下其余几个运算符。在小学除法中 除数 / 被除数=商......余数。在java中除(/)运算得到的值就是商,而取余(%)得到的值就是余数。++,--运算根据位置不同分为1.先赋值在运算,2.运算后在赋值。

int a = 21, b = 5;
int c = a / b;  //c=4
int d = a % b;  //d=1
int e = a++;  //a=22,e=21。a先把值赋给e,e=21,然后a在自增1,a=22。
int f = ++a;  //a=23,f=23。a先自增1,a=23,然后a再把值赋给f,f=23。(接上一个运算)
// -- 运算和 ++ 类似,就不再赘述。++,--与数字之间无空格。

二、逻辑运算符

逻辑运算符是布尔值(boolean)之间的操作,即只有布尔值之间才能使用逻辑运算符。常见的逻辑运算符有:逻辑与(&&),逻辑或(||),非(!)。&&和||具有短路效果,即第一个可以得到结果时不再进行第二个判断。

boolean a = true;
boolean b = false;
System.out.println(a && b);  //false
System.out.println(a || b);  // true
System.out.println(!a); // false
if (!b){
   System.out.println("进来了"); //在if判断中 !b 的含义是判断 b == false
}

三、关系运算符

关系运算符用于比较两个数值之间的大小,其运算结果为一个布尔值(boolean)。常见的运算符号有:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。这个比较简单,没什么好说的。

在java中多个判断不能连着写,即 1<a<5是不合法的,应该写作a > 1 && a < 5。

四、位运算符

整数的二进制编码可以参考原码、反码和补码之间的转换

位运算符是以二进制为基础进行运算的。常见的位运算符有:与(&)、或(|)、非(~)、异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。

与运算:4&3 = 0;都为1时结果才为1,否则为0。即1&1=1,1&0,0&1,0&0都为0
  0100
& 0011
——————
  0000

或运算:4|3 = 7;有一个为1时结果就为1。即1&1=1,1&0=1,0&1=1,0&0=0
  0100
| 0011
——————
  0111
  不把&和|看成逻辑运算符的原因是,在java中true可以看成1,false可以看成0。即1&0=0(false),1|0=1(true)。

非运算:~4
~ 0000 0100
————————————
  1111 1011 (负数的补码),其原码为1000 0101即~4=-5。

异或运算:4^3=7;相同为0,不同为1。即1^1=0,1^0=1,0^1=0,0^0=0
  0100
^ 0011
——————
  0111

右移:>> 如果该数为正,则高位补0,若为负数,则高位补1
  1.正数: 15>>2 = 3;将15右移2位,相当于15/4=3。即右移几位则除2的几次方。
     0000 1111 >> 0000 0011。
  2.负数: -15>>2 = -4;负数的右移和正数类似,不过在不能整除的情况下,负数的结果是商+(-1)。
     1111 0001 >> 1111 1100


左移:15<<2;将15左移两位,相当于15*4=60.即左移几位则乘2的几次方。
0000 1111 << 0011 1100。

0填充右移: >>>该数为正时与>>一致。当该数为负时,得到一个很大的正整数(java对整数采用32位填充)。
    1111 1111 1111 1111 1111 1111 1111 0001 >>> 0011 1111 1111 1111 1111 1111 1111 1100

5、三元运算符

   

/*
变量名称 = 条件判断 ? 表达式A : 表达式B;
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋值给左侧的变量;
如果不成立为false,那么将表达式B的值赋值给左侧的变量;
表达式的结果类型必须和左边的变量类型一致
*/
int[] arr = {10, 20};
for (int i : arr) {
   String desc = i < 12 ? "上午" : "下午";
   System.out.println(desc);
}
int a = arr[0] > arr[1] ? arr[0] : arr[1];
System.out.println("最大值:" + a);
————————
上午
下午
20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值