Java基础运算符多大点事儿
Java基础运算符
基础运算符
java中的基础运算符和就是数学里面的 + - * /
但是Java中存在不同的数据类型,那不同的数据类型之间能否相加呢?
当然可以啊 但是数据类型也会有所改变 当有Long类型时结果就为Long
没有Long的话结果都为Int
package com.operator;
public class Demo01 {
public static void main(String[] args) {
//基础运算符 + - * / 以及不同类型的数据能否相加
long a = 12354564L;
int b = 123;
short c = 10;
byte d = 8;
/**
* 不同类型的数据相加能实现吗?
* 当然可以但是数据类型会有改变
* 当有Long时结果为Long 当没有Long时结果为Int
*/
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int
}
}
自增 自减 一元运算符
主要是弄清楚代码执行前后执行是先赋值还是后赋值
package com.operator;
public class Demo02 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++; //执行完代码之后先给b赋值再自增
//a = a+1; a=4
//a = 4+1
int c = ++a; //执行完这行代码前先自增再给c赋值
System.out.println("a等于:"+a);//5
System.out.println("b等于:"+b);//3
System.out.println("c等于:"+c);//5
//幂运算2^3 = 8 借助工具进行运算
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
与,或,非逻辑运算符
要注意的是逻辑与运算符里面的短路运算当第一判断条件为false的时候遍不会去执行或者判断后面的条件
package com.operator;
public class Demo03 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b"+(a && b));//逻辑与运算两个为真才为真
System.out.println("a || b"+(a || b));//逻辑或运算一个为真就为真
System.out.println("!(a && b)"+(!(a&&b)));//如果是真,则为假 如果是假,则为真
/*与运算如果一开始遇到的就为false那不将不悔执行后面的语句*/
//短路运算测试
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);//c在这里并没有加一说明在判断完c<4为false之后
}
}
位运算
位运算是一种效率极高的运算符通常用于底层
package com.operator;
public class Demo04 {
public static void main(String[] args) {
/*位运算 效率极高的运算
* A = 0011 1100
* B = 0000 1101
*--------------------------------------
* A&B = 0000 1100 1相同的时候才是1 其余都是0
* A|B = 0011 1101 都是0的时候才为0 其余都是1
* A^B = 0011 0001 异或相同是0 不相同是1
* ~B = 1111 0010 取反 与B相反
*
* 面试题
* 2*8 = 16 2*2*2*2
* <<左移 *2
* >>右移 /2
*
* 二进制 逢二进一
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 0101 5
* 0000 0110 6
* 0000 0111 7
* 0000 1000 8
* 0001 0000 16
* 0010 0000 32
* */
System.out.println(2<<3);//16 1的位置向左移动了三位
System.out.println(16>>3);//2
}
}
扩展赋值运算符
+=, -=, *=, /=
其实就是一种偷懒的写法
package com.operator;
public class Demo05 {
public static void main(String[] args) {
/*
* 扩展赋值运算符
* +=, -=, *=, /=
* */
int a =10;
int b =20;
int c =30;
a+=b;//a = a+b
a-=b;//a = a-b
a*=b;//a = a*b
a/=b;//a = a/b
System.out.println(a);
//面试题
//字符串连接符 + 只要有一方出现String类型就会把其他操作数转换为String进行连接
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
System.out.println(a+b+""+c);//3030
}
}
三元运算符
这是必须掌握的一种运算符在开发中比较常见
package com.operator;
public class Demo07 {
public static void main(String[] args) {
/*
*三元运算符
*x ? y :z
* 这是什么意思呢其实很简单
* x==true,则结果为y,否则结果为z
* */
int score = 75;
String scores= score<60 ?"不及格":"及格";//必须掌握开发中比较常见
System.out.println(scores);
}
}
以上的内容都是通过下方学习视频得来的


浙公网安备 33010602011771号