运算符

2.运算符:
算数运算符:
+:①加法,加号两端都是数值时;②拼接,用于连接字符串,如果加号两端至少有一端有字符串,则连接起来的一定是字符串;
System.out.println(“Hello” + “World”);
-、、/、%:和数学运算当中的相同;
++:自增,自身数值加1,在返回;i++和++i含义相同;
注意:复合运算时,不相同;
int i = 1,l =1;
int j = i++;//①先把i赋值给i++;②i再自身加1;③再把i++赋值给j;
int k = ++l;//①先把l进行自身加1;②再把l的值赋给l++;③再把l++赋值给k
System.out.println(j);//1
System.out.println(k);//2
System.out.println(i);//2
System.out.println(l);//2
赋值运算符:
=:右边的值赋给了左边;
+=:i+=j等同于i= i+j;将符号**左边的值右边的值进行相加操作,最后将结果赋值给左边的变量
-=、
=、/=、%=,与上边的相同;
注意:
short s = 3;
//s = s+4;会出现报错
s+=4;//可以正常运行,在得到int之后,JVM强制转换了数据类型,将int改为了short;
System.out.println(s);
关系运算符:(比较运算符,条件判断,两个数据之间的比较运算,运算结果只会得到boolean值,也就是true或false)
class Demo8{
public static void main(String[] args){
int i1 = 10;
int i2 = 8;
System.out.println(i1 i2);
System.out.println(i1 >=i2);
System.out.println(i1 !=i2);
System.out.println(i1 <i2);
System.out.println(i1 >i2);
}
}
逻辑运算符:逻辑运算符两端连接的是boolean值,其中(!)除外;运行结果一定是boolean型的值true或者false。
&:与 ;两个都为true才是true;
|:或;有一个为true,就是true;
!:非;非true则false,非false则true;
^: 异或;两个结果不相同则为true,相同则为false;
&&:短路与;如果左边为true,就执行右边;如果左边为false,则不执行右边;
||:短路或;如果左边为false,就执行右边;如果左边为true,则不执行右边;
class Demo8{
public static void main(String[] args){
int i1 = 10;
int i2 = 8;
System.out.println(i1 >=10&i2>2);
System.out.println(i1 >11&i2>2);
System.out.println(i1 >=10|i2>2);
System.out.println(i1 >=20|i2>2);
System.out.println(i1 >=10^i2>2);
System.out.println(i1 >=20^i2>200);
System.out.println(!false);
System.out.println(i1 >=10||i2++>2);
System.out.println(i2);
}
}
三元运算符:
表达式:数据类型 变量名 = 关系式?结果一:结果二;
如果当关系式为true时则输出结果一;如果当关系式为false时,输出结果二;
随机生成一个四位数的年份判断是否为闰年;
class Demo{
public static void main(String[] args){
double d=Math.random();
int year = (int)(d*9000+1000);
System.out.println(year);
boolean result = year%4
0&&year%100 !=0||year%400==0;
System.out.println(result?“是闰年”:“不是闰年”);

}

}
位运算符:如果左右两端是int类型的话,则是按位运算符;按位运算是要先化成二进制,然后按照原码–反码–补码的顺序进行运算;计算机是以补码的方式进行存储的;
注意:最高位是符号位,1为负数,0为正数;
源码:数字直接化为二进制;
反码:除最高位符号位外,0变为1;1变为0;
补码:在反码的基础上加1;
正数的三码合一都是相同的;负数的反码按位取反,符号位除外,补码在反码的基础上加一。最后得到的十进制数都是源码;
&:按位与;有0则返回0,都是1时返回1;
|:按位或;有1则返回1,全为0则返回0;
^:按位异或;当两位同为0或两位同为1时返回1,不同则返回0;
~:按位取反:0变成1,1变成0,包括符号位;

:右移运算符;右移几位相当于十进制的数乘以2的几次方;
<<:左移运算符;左移几位相当于十进制的数初以2的几次方;
左移、右移都是在二进制的基础上左右移动;

:无符号右移运算符;往右移动后,左边空出来的位直接补0,不看符号位

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值