Java运算符和表达式

1.按照运算符的操作数的数目划分可分为以下几类:
(1)一元运算符:如++、–、+、-等;
(2)二元运算符:如+、-、、>等;
(3)三元运算符:如?:等;
2.按照运算符的功能划分,可分为以下几类:
(1)算数运算符:+、-、
、/、%、++、–等;
(2)关系运算符:>、<、>=、<=、==、!=等;
(3)布尔逻辑运算符:!、&&、||;
(4)位运算符:>>、<<、>>>、&、|、^、~等;
(5)赋值运算符:=;
(6)条件运算符:?:;

1.1一元运算符
如果将增量运算符与减量运算符表达式再作为其他表达式的操作数时,i++与++i是有区别的;i++是在使用i之后再使i’的值+1,执行i++后,整个表达式的值为i,而i的值变为i+1;例如i=20,j=2,执行语句((i++)*(–j))结果是20,i的值为20,而j的值为1;减量同理可得;

1.2二元运算符
二元运算符适用于所有数值型数据类型,要注意的是,如果操作数全部为整型,只要有一个为long型,则结果也是long型;如果操作数为浮点型,那么只要其中有一个为double型,则结果就是double型;还有就是当“/”和“%”运算中除数为0时2,会出现异常;
例如9/2=4; 5/2.0=2.5; 45.4%10=5.4;

1.3运算符在字符串中的应用
Java对“+”运算符进行了扩展,使它能够以进行字符串的连接,如“abc”+“de”=“abcde”,3.0+“abc”=“3.0abc”,3+4+“ab”+5=“7ab5”;

1.4算术运算符的优先级
++和–的级别最高,然后是*、/、%,最后是+、-;
例如(a++* b+c* --d)=96

1.5关系运算符和关系表达式
直接举个例子(部分代码)

int i=10,j=15;
System.out.println(i==j);
String s1 = new String("how are you");
String s2 = new String("how are you");
System.out.println(s1==s2);--------------------①
System.out.println(s1.equals(s2));-----------------------②

输出①false
输出②true
原因是对于符合数据类型数据的“==”运算,比较的是目标两个操作数是否是同一个对象,在上述的例子中,就是要比较s1和s2是不是同一个对象,虽然两个值都是how are you,但是它们却是不同对象,所以结果为false,而equals()方法比较的值是两个操作数的内容是否一样,所以值为true;

1.6位逻辑运算符
(1)按位取反运算符 ~
~是一元运算符,对数据的每个二进制位取反,即把1变为0,0变为1
例如:10111010取反后为01000101;
(2)按位与运算符&
两个操作数中,如果两个相应位都为1,则该位的结果为1,否则为0
0 & 0 = 0; 0 & 1 = 0; 1 & 1 = 1; 1 & 0 = 0;
例如:01010101 & 00101111 = 00000101;
(3)按位或运算符 |
两个操作数中,只要两个相应的位中有一个为1,则该位的结果为1,否则为0
0 | 0 = 0; 0 | 1 = 1; 1 | 1 = 1; 1 | 0 = 1;
例如:01010100 | 00101110 = 01111110;
(4)按位异或运算符 ^
两个操作数中,两个相应位相同,则该位的结果为0,否则为1
0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 1 = 0; 1 ^ 0 = 1;
例如:01010100 ^ 00101110 = 01111010;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值