java基础之运算符
2017-11-20 16:11
232 查看
算术运算符
+ - * / % ++ - -加减乘除取余自加自减
这里说一下除法运算:如果两个数都是整数,计算结果也是整数,不能够整除进行四舍,不进行五入;如果两个数有一个是浮点数,得到的结果是自然除法,除数可以为0或0.0,结果是无穷大或无穷小
得到的结果是
2.857143
Infinity
取余运算,就是求余数,得到的结果不一定都是整数。若两个数都是整数,除数不能为零,否则会出现异常,如果两个数中有一个数浮点数,怎除数可以为0 ,得到的结果是非数-NaN
++自加 - -自减 a++,++a,b- -,- -b,当自加自减在操作数左边时表示先加1再赋值,在右边时,先赋值再加1
赋值运算符
= ,可以直接将数值赋给变量,也可以将表达式的值赋给变量
位运算符 一般来说位运算符只能操作整数类型的变量,对变量的二进制进行操作。
& 按位与
| 按位或
~ 按位‘非’
^ 按位异或
<< 左移
>>
4000
; 右移
>>> 无符号右移
这里盗的几张图说的比较清楚,有兴趣的朋友可以看看《疯狂java讲义》这本书。
位移运算是对二进制数进行运算,一般对于位数,变量类型需要注意:
byte short char类型的数需要先自动转化为int类型再进行运算
int类型是32位的数,超过32,会对这个数取余在进行运算,所以a>>32=a,a>>33=a>>1
long类型是64,和int类型一样遵循这个规则
比较运算符
>
>=
<
<=
以上都只支持数值类型的比较
\==,数据类型即使不相同,数值类型相同返回true,若是引用类型且为父子关系,则必须都指向同一个对象才返回true
!=
扩展后的运算符 赋值运算符和算术运算符和位运算结合
+= 对于x+=y 就等于 x=x+y
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
逻辑运算符
&& 与 短路,两边为true 返回true
& 与 不短路,
|| 或 短路,有一个是true,返回true
| 或 不短路
! 非 只需要一个操作数,若为true返回false,反之
^ 亦或,两个不同返回true,不同返回false
三目运算符
(expression) ? if-true-statement : if-false-statement
运算符优先级
+ - * / % ++ - -加减乘除取余自加自减
这里说一下除法运算:如果两个数都是整数,计算结果也是整数,不能够整除进行四舍,不进行五入;如果两个数有一个是浮点数,得到的结果是自然除法,除数可以为0或0.0,结果是无穷大或无穷小
float f= 2.1f; int g=6; System.out.println(g/f); System.out.println(f/0);
得到的结果是
2.857143
Infinity
取余运算,就是求余数,得到的结果不一定都是整数。若两个数都是整数,除数不能为零,否则会出现异常,如果两个数中有一个数浮点数,怎除数可以为0 ,得到的结果是非数-NaN
System.out.println(5 % 0.0);//得到的结果:NaN System.out.println(-5.0 % 0);//得到的结果:NaN System.out.println(0 % 5.0);//得到的结果:0.0 System.out.println(0 % 0.0);//得到的结果:NaN System.out.println(-5 % 0);//得到的结果:出现异常,Exception in thread "main" java.lang.ArithmeticException: / by zero
++自加 - -自减 a++,++a,b- -,- -b,当自加自减在操作数左边时表示先加1再赋值,在右边时,先赋值再加1
int a= 5; int b=a++ +6; System.out.println(b);//结果:11 int c = ++a +6; System.out.println(c);//结果:13
赋值运算符
= ,可以直接将数值赋给变量,也可以将表达式的值赋给变量
位运算符 一般来说位运算符只能操作整数类型的变量,对变量的二进制进行操作。
& 按位与
| 按位或
~ 按位‘非’
^ 按位异或
<< 左移
>>
4000
; 右移
>>> 无符号右移
这里盗的几张图说的比较清楚,有兴趣的朋友可以看看《疯狂java讲义》这本书。
位移运算是对二进制数进行运算,一般对于位数,变量类型需要注意:
byte short char类型的数需要先自动转化为int类型再进行运算
int类型是32位的数,超过32,会对这个数取余在进行运算,所以a>>32=a,a>>33=a>>1
long类型是64,和int类型一样遵循这个规则
比较运算符
>
>=
<
<=
以上都只支持数值类型的比较
\==,数据类型即使不相同,数值类型相同返回true,若是引用类型且为父子关系,则必须都指向同一个对象才返回true
!=
扩展后的运算符 赋值运算符和算术运算符和位运算结合
+= 对于x+=y 就等于 x=x+y
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
逻辑运算符
&& 与 短路,两边为true 返回true
& 与 不短路,
|| 或 短路,有一个是true,返回true
| 或 不短路
! 非 只需要一个操作数,若为true返回false,反之
^ 亦或,两个不同返回true,不同返回false
三目运算符
(expression) ? if-true-statement : if-false-statement
运算符优先级
相关文章推荐
- java基础之运算符
- Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符
- Java基础之运算符
- java 从零开始,学习笔记之基础入门<运算符表达式和流程控制>(六)
- 黑马程序员--Java基础学习(运算符知识)第二天
- java入门基础编-4-运算符
- java基础六(运算符)
- JAVA基础【3.5】《Java核心技术1》Java的基本程序设计结构-运算符【收集】
- Java基础系列(二)变量、运算符
- 黑马程序员--Java学习日记之基础知识(数据类型和运算符)
- Java零基础系列004——运算符
- java基础之括号与运算符级别
- Java语言基础组成(运算符,关键字,语句if,whle,for)
- 整理Java基础知识--运算符
- java基础----day02:运算符
- java基础之运算符
- java基础--1.基本语法 - 3.运算符
- Java学习笔记之java基础语法,运算符(二)
- Java基础1(基础、运算符、语句1)
- java笔记03 基础语法02 运算符