1.Java中的运算符:
算术运算符:+ - * / %
赋值运算符:=
比较运算符:< > <= >= == !=
逻辑运算符:& | ! && || ^
条件运算符: 表达式1?表达式2:表达式
操作数:运算符左右两边的数就是操作数。
表达式:运算符连接左右两边的操作数整体叫做表达式。
语句:遇到 ; 就是语句的结束。
一元运算符|单目运算符: 操作数只有一个的运算符 ++ – +(正号)
二元运算符|双目运算符: 操作数有两个的运算符 + - * / %
三元运算符|三目运算符: 条件运算符
区分 ++a(先自增1再赋值运算) a++(先赋值运算再自增加1) --a(先自减1再赋值运算) a–(先赋值运算再自减1)
1.1 赋值运算符(=)
Java中唯一一个自右向左运算的符号
扩展赋值运算符:+= -= *= /= %=
缺点 :不直观;
优点:自动做强制类型转换;提高执行效率;
short s1=1;
s1+=1;
(如果把s1+=1换成s1=s1+1)编译时出现类型转换错误
1.2比较运算符|关系运算符(结果是布尔类型的值)
> < >= <=
byte short int long float double char
== !=
可以做基本数据类型的比较,可以做引用数据类型的比较。
注意: 字符串比较是否相等 字符串1.equals(字符串2) 比较字符串1与字符串2是否相等,如果相等返回true,不相等是false
1.3 逻辑运算符(运算符两边是布尔类型的表达式)
& 与 两个操作数都是true才是true,一个为false结果就为false
| 或 一个为true就是true,两个都为false才为false
! 非 —>取反 !true --> false
^ 异或 相同为false,不同为true
短路与和短路或 :如果左边的操作的值就能决定最终整个表达式的结果,右面的表达式就不在执行
1)&& 两个操作数都是true才是true,一个为false结果就为false
2)|| 一个为true就是true,两个都为false才为false
1.4条件运算符(三元或者三目)
条件表达式 ? 值1 : 值2 ;
执行流程:
1.先执行条件表达式 -->值为boolean类型的表达式
2.如果结果为true, 最终结果取值1
3.如果结果为false,最终结果取值2
1.5补充一个位运算符
>>右移运算符:比如8>>3 把8转位二进制1000,移动三位(000),表示为0001(左边自动补齐),结果为1。(即8>>3 = 8/2^3)
<< 左移运算符:比如8<<3 二进制1000,左移三位,变成0100 0000,结果为64。(即8<<3 = 8*2^3)
2.运算符的优先级:(高到低)
单目 算数 位 关系,逻辑 三目 后赋值
3.键盘输入(Scanner)
基本数据类型
使用引用数据类型的方式
1.创建引用数据类型的变量|引用
引用数据类型 变量名|引用 = new 引用数据类型(); --公式
2.使用功能
引用.功能名字();
Scanner:
1.导包 import 相对地址;
提供类Scanner的位置
位置:类的上面导包
2.创建Scanner类型的引用
3.功能名字();
nextInt(); 接收用户输入的int类型整数
nextByte(); 接收用户输入的byte类型整数
nextShort(); 接收用户输入的Short类型整数
nextLong(); 接收用户输入的Long类型整数
nextDouble(); 接收用户输入的Double类型整数
nextFloat(); 接收用户输入的Float类型整数
next(); 接收用户输入的String类型数据(有效字符开始接收,直到遇到空格或者多个空格或者按tab键结束接受,遇到enter停止功能
nextLine() 接收用户输入的一整行的内容
从第一个位置开始接收,直到输入enter结束
nextLine()功能之前如果存在系列的next功能.需要处理遗留在缓冲区的enter
4.引用.close():一定要在用完之后关闭,否则当前类中重新开启也不能用
4. Random 类(产生随机数)
1.导包 java.util.Random
2.创建类型的引用 Random
3.使用功能
产生随机整数
nextInt() --> int范围内的随机整数
nextInt(n) --> 随机产生 [0,n) 随机整数
n只能决定最大范围
产生随机小数
nextDouble() [0.0,1.0)随机小数
这里的随机数都是伪随机数;内部算法算出来的。
常用公式:
[0,max) 引用.nextInt(max);
[0,max] 引用.nextInt(max+1);
[min,max) 引用.nextInt(max-min)+min;
[min,max] 引用.nextInt(max-min+1)+min;