文章目录
一. 算术运算演示
新建ArithmeticOperatorDemo.java
//演示算术运算符
class ArithmeticOperatorDemo
{
public static void main(String[] args)
{
//操作数
System.out.println(1+2);
System.out.println(1-2);
System.out.println(1*2);
System.out.println(1/2);
System.out.println("-----------------");
//操作字符
System.out.println('A'+'B');
//操作字符串
System.out.println("Hello"+"World");
System.out.println(10/3);//省略小数
System.out.println(903273/1000*1000);
//System.out.println(100/0);//原因:by zero
//无穷大:Infinity,double由于精度不确定,相当于一个数除以一个无穷小的数
System.out.println(100.0/0);
System.out.println(-100/0.0);
System.out.println(0.0/0.0);//这个数不存在:NaN
int i1;
i1=1;
System.out.println(i1==i1);//true
double d1;
d1=0.0/0.0;
System.out.println(d1==d1);//false
}
}
二. 自增,自减
- ++:表示当前变量自己累加1;
- –:表示当前变量自己减1;
- 只能操作变量,不能常量。
- 代码中result++和++result,都使result变量加1;
- 唯一区别:
- 前置(++result):表示result加1之后的结果进行运算。
- 后置(result++):表示result加1之前的值(原始值)进行运算。
- 如果仅仅执行简单的递增操作,那么选用任意一个都可以。
建立ArithmeticOperatorsDemo2.java
//自增,自减
class ArithmeticOperatorsDemo2
{
public static void main(String[] args)
{
int a1 = 5;
int b1;
b1 = ++a1;
System.out.println("a1:" + a1 + "," + "b1:" + b1);//a1=6,b1=6
System.out.println("-----------");
int a2 = 5;
int b2;
b2 = a2++;
System.out.println("a2:" + a2 + "," + "b2:" + b2);//a2=6,b2=5
}
}
三. 自增,自减,面试题目
新建ArithmeticOperatorDemo3.java
class ArithmeticOperatorDemo3
{
public static void main(String[] args)
{
int i=5;
++i;
System.out.println("i:" + i);//i=6
i++;
System.out.println("i:" + i);//i=7
int a;
a= ++i;
System.out.println("a:" + a);//a=8
System.out.println("i:" + i);//i=8
int b;
b= i++;
System.out.println("b:" + b);//b=8
System.out.println("i:" + i);//i=9
}
}
四. 赋值运算符
- =,+=,-=,*=,/=,%=。
- +=:自带隐式转化。
新建AissgnmentOperatoresDemo.java
//赋值运算符的演示
class AissgnmentOperatores
{
public static void main(String[] args)
{
short s = 8;
//s = s + 1;//编译出错,大转小
s += 1;
System.out.println("s:" + s);
}
}
五. 比较运算符
- ==,>,<,<=,>=.
- 结果为boolean类型;
新建ComparisonOpratorDemo.java
//比较运算符的演示
class ComparisonOperatorDemo
{
public static void main(String[] args)
{
boolean b = 4 == 4;//==的优先级大于=的优先级
System.out.println(b);
System.out.println(4 != 4);
}
}
六. 三元运算符
表达式?结果a:结果b
//三元运算符
class TernaryOperatorDemo
{
public static void main(String[] args)
{
/*
需求:让小数四舍五入
*/
double num = 5.5;
int num0 =(int)num;
double num1 = num -5;
int result = num1 >= 0.5 ? num0 + 1 : num0;
System.out.println("result:" + result);
//判断两个数的大小,求最大值
int arg1 = 3;
int arg2 = 5;
int arg3 = arg1 > arg2 ? arg1 : arg2;
System.out.println("arg3:" + arg3);
//求这个数的奇偶
int i3 = 3;
String s1 = i3 % 2 == 0 ? "偶数" : "奇数";
System.out.println("s1:" + s1);
}
}
七. 分页业务逻辑
新建PageDemo.java
//分页业务逻辑演示
class PageDemo
{
public static void main(String[] args)
{
/*
一共82条数据,每页最多十条
计算:一个多少页
*/
int totalCount = 80;
int pageSize = 10;
int totalPage;
totalPage= totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
System.out.println("totalPage:" + totalPage);
//下一页
int currentPage = 8;
int nextPage = currentPage + 1 > totalPage ? totalPage : currentPage + 1;
System.out.println("nextPage:" + nextPage);
}
}
八. 逻辑运算符
-
&和&&的区别:
-
A & B
当前面为false时,继续执行B。
-
A && B
当前面为false时,不会再执行B。
-
-
| 和 || 的区别:
-
A | B
当前面为true是,继续执行B
-
A || B
当前面为true时,不再执行B
-
-
A ^ B
当两边boolean值相同时,为false,不同时为true
新建LogicalOperatorDemo.java
//逻辑运算符Demo
class LogicalOperatorDemo
{
public static void main(String[] args)
{
//System.out.println(false & (1 / 0 == 0));//出错
System.out.println(false && (1 / 0 == 0));
System.out.println("--------------");
//System.out.println(true | (1 / 0 == 0));//出错
System.out.println(true || (1 / 0 == 0));
System.out.println("--------------");
System.out.println(true ^ true);//false
System.out.println(false ^ false);//false
System.out.println(false ^ true);//true
System.out.println(true ^ false);//true
}
}
九. 位运算符
- &,|,^的运算
新建BitOperatorDemo.java
//位运算符
class BitOperatorDemo
{
public static void main(String[] args)
{
/*
3二进制:011
5二进制:101
011
& 101
--------------
001
*/
System.out.println(3 & 5);//1
System.out.println(3 | 5);//7
System.out.println(3 ^ 5);//6
}
}
- “<<”:将操作数的二进制码整体往左移,右移后空的使用“0”来补充
- “>>”:将操作数的二进制码整码体往右移,右移后使用“符号位”来补充:
- 若是整数用“0”补充;
- 若是负数用“1”补充;(操作负数:取反,求补,操作,取反,求补)
- “>>>”:将操作数的二进制码右移指定位数,右移后的空位使用“0”来补充。
对BitOperatorDemo.java进行修改
class BitOperatorDemo
{
public static void main(String[] args)
{
...
/*
2的二进制:
00000000_00000000_00000000_00000010
左移3位:
00000000_00000000_00000000_00010000
-16的二进制:
原10000000_00000000_00000000_00010000
反11111111_11111111_11111111_11101111
补11111111_11111111_11111111_11110000
右移3位:
补11111111_11111111_11111111_11111110
反11111111_11111111_11111111_11111101
原10000000_00000000_00000000_00000010
*/
System.out.println("-------------");
System.out.println(2 << 3);//16
System.out.println(2 >> 5);//0,当位数不够时为0
System.out.println(-16 >> 3);//-2
System.out.println(-16 >> 7);//-1当位数不够时为-1
System.out.println(-16 >>> 3);
}
}
十.交换两个数
新建SwapDemo.java
//交换两个数
class SwapDemo
{
public static void main(String[] args)
{
//使用中间变量交换
int a =5;
int b =4;
int c;
c = a;
a = b;
b = c;
System.out.println("a:" + a + "," + "b:" + b);
//使用差
//获得两个数之间的差
a = a - b;
//小的数加上差的值赋值给b1
b = b + a;
//把大的数减去差赋值给a1
a = b - a;
System.out.println("a:" + a + "," + "b:" + b);
//使用异或
a = a ^ b;
//下面等值于 b = a ^ b ^ b;
//现在b的值为a
b = a ^ b;
//下面等值于 a = a ^ b ^ a;
a = a ^ b;
System.out.println("a:" + a + "," + "b:" + b);
//栈调换
//定义Integer类型的栈
Stack<Integer> stack = new Stack<Integer>();
//分别把a,b压如栈中
stack.push(a);
stack.push(b);
//把栈顶元素取出赋值给a
a = stack.pop();
//把栈顶元素赋值给b
b = stack.pop();
System.out.println("a:" + a + "," + "b:" + b);
}
}