转义字符
转义字符:用来表示有些具有特殊含义的字符
转义方式:转义字符从\开始 + 要转义的字符
\t 制表符 一个制表符代表8个空格,一个字母1个空格,一个汉字占2个空格
查看前面的内容,是否满足制表符的整数倍,如果不满足补满,如果满足重开一个制表符位
\b退格
光标会删一格
\n换行
ln类似
\r 回到行首
光标回到行首
数值型的表示形式
1.整数的不同进制:满几进一
二进制: 由0,1组成 以0b/0B开头表示二进制
八进制: 由0~7组成 以0开头表示八进制
十进制: 默认
十六进制: 0~9,a~f组成 大小写都可以 以0x/0X表示十六进制
其他进制转十进制:从后往前,从最后一位开始*进制数,次方从0开始每次+1,最终所有位数的值求和
十进制转其他进制:一直除以要转为的进制数,得数为0为止,余数从下网上看
2.浮点数的表示形式
0.5->0可以省略
科学计数法表示 e->10
1.234e2 ->1.234*10^2
1.234e-2 ->1.234/10^2
1314转为不同的进制2,8,16求结果,进行验证
运算符:
算数运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符
位运算符(了解)
操作数: 运算符左右两边的数叫做操作数
表达式: 运算符链接两边的操作数咋横踢叫做表达式
语句: 遇到;就是语句的结束
单目运算符|一元运算符:操作数只有一个 ++ -- -负号
双目运算符|二元运算符: + - / * %
三目运算符|三元运算符:条件运算符
算数运算符
+ - * / % ++ --
+
+正号
加法运算
字符串的连接符
当+左右两边由字符串的出现,就作为字符串的连接符使用,最终得到一个字符串结果
-
负号 不能省略
减法运算
% 取余数|取模|模以
如果前面的操作数<后面的操作数,结果为第一个操作数 3%4=3
++ --
自身+1|-1 a++ -> a=a+1;
操作自己|不影响别人
++放在操作数的前面还是后面都是自身+1
--放在操作数的前面还是后面都是自身-1
操作别人|影响别人|参与运算
++--放在操作数的前面,先自身先去+1|-1,再参与运算
++--放在操作数的后面,先参与运算,再自身+1|-1;
赋值运算符
基本赋值运算符
=
java中唯一一个自右向左运算的符号
优先级别最低
扩展赋值运算符(算数运算符+基本赋值运算符)
+= -= *= /= %=
a+=3;==>a=a+3;
a-=3;==>a=a-3;
a*=3;==>a=a*3;
a/=3;==>a=a/3;
a%=3;==>a=a%3;
优点: 1)自动做强制类型转换 2)提高执行效率
缺点: 不直观
推荐使用扩展赋值运算符
关系运算符|比较运算符
> < >= <=
只能针对byte,short,int,long,char,float,dobule进行比较
== !=
可以对基本数据类型或引用数据类型做比较
比较运算符最终的结果都是boolean类型的值 true,false
逻辑运算符
逻辑运算符左右两边的操作数都是值为boolean类型的表达式
& 与 一个为false就是false,两个都是true才是true
| 或 一个为ture就是true,两个都为false才是false
^ 亦或 相同为false,不同为true
短路,如果第一个值已经能够决定表达式的结果,第二个值就不再执行
&&
||
条件运算符
条件表达式 ? 值1 : 值2;
条件表达式是值为boolean类型的表达式
执行流程:
1.计算条件表达式
2.如果值true,最终结果取值1
3.如果值false,最终结果取值2
位运算符:(了解)
先把操作数转为二进制,参与运算,结果转为10进制
& 统一位数的两个数,如果一个为0就是0,两个都为1才是1
| 同一位数的两个数,如果一个为1就是1,两个都为0才是0
^ 相同为0,不同为1
右移运算符 相当于/2的第二个操作数次方
>> 假设第一个操作数二进制数的右边有一个分水岭,移动第二个操作数个位数,移出分水岭的数不计算,剩下的二进制转为十进制
左移运算符 相当于*2的第二个操作数次方
<< 向左移动第二个操作数个位数,空余补0,最终转为十进制
比之间使用* /效率高
Scanner : 接受键盘输入
1.导包
说明Scanner类的地址 使用import关键字+路径 导包 java.util.Scanner;
导包要类的上面导包
2.创建Scanner类型的变量--根据公式 Scanner sc=new Scanner();
3.使用功能
nextInt() 接受int类型的整数
nextByte() 接收byte类型的整数
nextShort() 接收short类型的整数
nextLong() 接收long类型的整数
nextDouble()
nextFloat()
next() 接收用户输入的字符串类型的数据
从有效字符开始接收,知道遇到空格,tab不再接收了,enter停止功能
nextLine() 接收字符串数据,遇到enter结束功能(接收一整行)
4.关闭
变量.close();
一定要再这个类使用完毕Scanner之后再关闭,否则后面重新开启也无法继续使用
Random: 产生随机数
1.导包 java.util.Random
2.创建Random类型的变量|引用
3.通过引用数据功能
随机整数
nextInt() 随机产生int类型范围内的一个随机整数
nextInt(整数n) 范围: [0,n)随机整数
公式:
[min,max) 引用.nextInt(max-min)+min
[min,max] 引用.nextInt(max-min+1)+min
随机小数:
nextDouble() 产生随机小数 [0,1)
伪随机数
流程控制语句:
顺序结构:
选择结构:根据判断,满足条件执行某些代码
循环结构:重复执行某些代码
if..else
单分支|单选泽:
if(条件判断){
满足条件要执行的语句
}
执行流程:
1.计算判断条件(值为boolean类型的表达式)
2.如果true,执行{}语句体
3.如果false,不执行,直接跳过if结构
双分支|双选择
if(条件判断){
语句体1;
}else{
语句体2;
}
无论是否满足都会有与具体执行,肯定会有一个结果
多分支|多选择
if(条件判断1){
语句体1;
}else if(条件判断2){
语句体2;
}else if(条件判断3){
语句体3;
}....
else{
语句体n;
}
注意:
1.如果if结构中存在else,肯定有结果,如果不存在,可能没有结果
2.如果if的语句体只有1句,前后{}可以省略
if和条件表达式之间的区别:
1.if可以对多个条件多次判断
2.条件表示肯定会有结构
条件运算符结构比较简单,效率较高,if比较直观