java中有很多运算符号,称之为运算符(operator),这篇文章主要针对运算符进行说明内容会稍微多一些,可以反复看一下。
加+
减-
乘*
除/
取余%
1、如上所示,前5个是基本的算术符号,分别为加、减、乘、除、取余。
PS:本人用的开发环境工具是Idea,这里面有一个快捷键用法,Ctrl键+D,复制当前行到下一行(光标点在要复制的代码行上),这样写重复的代码时候可以不用再手写一遍,可以提升工作效率,如果是初学者的话还是建议取多写一写加深印象
public class Demo{
public static void main(String[] args){//这行代码在Idea中直接输入psvm,然后回车可以直接生成
//二元运算符
int a=10;
int b=20;
int c=30;
int d=40;
//这行代码输入sout按回车可以直接生成
System.out.println(a+b);//输出的值为30
System.out.println(a-b);//输出的值为-10
System.out.println(c*d);//输出的值为1200
System.out.println(a/b);//输出的值是0
}
}
上述代码中,我们可以看到正常的运算都没有问题,但是到除法那里,正常是0.5,但是这里面运算后,是0,是因为0.5是double类型的,变量c和d都是int类型的,这时候,就可以运用我上一篇文章讲述的类型转换。
关于java的类型转换
public class Demo{
public static void main(String[] args){
int a=10;
int b=20;
System.out.println(a/b);//输出的值是0
System.out.println(a/(double)b);//因为从低到高,要强制转换,所以这回输出的值是0.5
}
}
2、拓展一下刚刚说过的算术运算符。
public class Demo{
public static void main(String[] args){
long a=123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//输出结果为123123123264 类型为long
System.out.println(b+c+d);//输出结果为141 类型为int整型
System.out.println(c+d);//输出结果为18 类型为int
}
}
上述就可以说明,运算的类型中,包括long的,输出的结果一定是long类型,其他都为int类型,浮点数同理。
3、下面隆重介绍(++、- -)!!这两个符号也属于算术运算符,可能初次接触有些许的难理解,需要反复的去思考一下
public class Demo{
public static void main(String[] args){
//一元运算符
int a=3;
int b=a++;
int c=++a;
System.out.println(a);//输出的值为5
System.out.println(b);//输出的值为3
System.out.println(c);//输出的值为5
}
}
我们通过上述的代码中,可以看到,输出的a,并不是开始的a值,b的值为什么比a值小,c的值为什么和a值一样?
这是因为
public class Demo{
public static void main(String[] args){
int a=3;
int b=a++;
//因为++在后,=在前,所以先赋值,后自增,所以b是3
//a=a+1; 所以到这里,a目前的值是4
int c=++a;
//因为++在前,=在后,所以先自增,再赋值
//a=a+1; 所以在这里,a目前的值是5,把值赋给c,所以c是5
System.out.println(a);//输出的值为5
System.out.println(b);//输出的值为3
System.out.println(c);//输出的值为5
}
}
– 自减也是同理
public class Demo{
public static void main(String[] args){
int a=3;
int b=a--;
//因为--在后,=在前,所以先赋值,后自减,所以b是3
//a=a-1; 所以到这里,a目前的值是2
int c=--a;
//因为--在前,=在后,所以先自减,再赋值
//a=a-1; 所以在这里,a目前的值是1,把值赋给c,所以c是1
System.out.println(a);//输出的值为1
System.out.println(b);//输出的值为3
System.out.println(c);//输出的值为1
}
}
3、幂运算
正常在我们学过的数学里面,假如想计算2的3次方,在数学中为2^3
在程序中可以写为2 * 2 * 2 但是这种写法只是用幂数少的情况,并且很low,这个时候,可以用java中封装好的数据工具类,有点类似生活中的科学计算器。这个类就是Math类。
public class Demo{
public static void main(String[] args){
double b=Math.pow(2,3);
System.out.println(b);//输出的值为8.0
}
}
Math类里面有很多计算方法,应用的时候,在类后边打一个点(.)就会列出这个类中的所有方法,上述的pow就是计算幂用的,为什么用double,是因为,这个方法中声明的变量是double类型的,所以要用double去接。
这个我们上面有说到过,等于号,不是相等的意思,是将值赋给变量,比如
int a=10;//意思是把10赋值给a
大于 >
小于 <
大于等于 >=
小于等于 <=
等于 ==
不等于 !=
instance of (面向对象,后续说到面向对象的时候再进行说明)
关系运算符一般多用于判断(if esle)。
关系运算符返回的结果是布尔值,true和false。
public class Demo{
public static void main(String[] args){
int a=10;
int b=20;
int c=30;
System.out.println(a>b);//输出的值为false
System.out.println(a<b);//输出的值为true
System.out.println(a==b);//输出的值为false
System.out.println(a!=b);//输出的值为true
}
}
与或非大家应该并不陌生,与(and)或(or)非(!)。
1、逻辑与运算,两个结果都为真,结果为真。
2、逻辑与运算,两个结果其中一个为真,结果为真。
3、逻辑非运算,结果如果是真,则是假,结果如果是假,则是真。
public class Demo{
public static void main(String[] args){
boolean a=true;//真
boolean b=false;//假
System.out.println(a&&b);//输出的值为false,一个假,则为假
System.out.println(a||b);//输出的值为true,一个真,则为真
System.out.println(!(a&&b));//输出的值为true,结果是假,则为真
}
}
短路算法就是,如果第一个条件是错的,就不继续向下执行了,所以叫做短路运算。
public class Demo{
public static void main(String[] args){
int c=5;
boolean d=(c<4)&&(c++<10)
System.out.println(d);//输出的值为fasle
System.out.println(c);//输出的值为5,因为第一个条件已经是错误的了,所以不往下执行自增了。
}
}
位运算符是基于二进制运算的,0和1。
public class Demo{
public static void main(String[] args){
/*
A = 0011 1100
B = 0000 1101
--------------
A&B = 0000 1100 两个位数都为1的时候,结果取1,其他为0
A|B = 0011 1101 两个位数其中有一个是1,结果就是1,其他为0
A^B = 0011 0001 两个位数相同则为0,否则就为1
~B = 1111 0010 取B的反向结果
*/
}
}
有时候面试的时候会出一道题,2*8=16,怎么运算最快?用位运算效率极高!!
public class Demo{
public static void main(String[] args){
/*
2 * 8 = 16
2 * 2 * 2 * 2=16
<< *2 左移*2
>> /2 右移/2
下面用二进制进行说明一下
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
System.out.println(2<<3); //二进制的1向左移动两位
*/
}
}
扩展运算符又名==“偷懒运算符"==
public class Demo{
public static void main(String[] args){
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);//输出的结果为30
}
}
只要连接中有String类型,如果字符串在前面,会把其他的值转为String类型,如果在后边,会先进行其他的运算。
public class Demo{
public static void main(String[] args){
int a=10;
int b=20;
System.out.println(a+b);//输出的结果为30
System.out.println(""+a+b);//输出的结果为1020
System.out.println(a+b+"");//输出的结果为30
}
}
条件运算符也是一个“偷懒运算符”正常流程控制的时候用if else这种方式会让代码更加精简。
public class Demo{
public static void main(String[] args){
//三元运算符
//x?y:z
//如果x==true,则结果为y,否则结果为z
int source=100;
String type = source > 120 ? "及格":"不及格";
System.out.println(type);//输出的结果为不及格
}
}
以上就是java中的运算符了,运算符中可以多去使用括号,括号的优先级高,会先计算括号内部的!欢迎大家点赞收藏,可以用来反复观看,哪里有不足的可以进行指出评论