转义字符
转义字符就是用来表示某些具有特殊含义的字符,转义字符从反斜杠(\)开始,格式为:(+要转义的字符)。
常见的有如下几种:
(\t)制表符:一个制表符代表8个空格,一个字母1个空格,一个汉字占2个空格,查看前面的内容,是否满足制表符的整数倍,如果不满足补满,如果满足重开一个制表符位。
(\b)退格:光标回删一格。
(\n)换行:换到下一行开始执行
(\r)回到行首:光标回到行首
几种常见的需要转义字符输出的情况如下
System.out.println("\""); //输出一个双引号"
System.out.println('\''); //输出一个单引号'
System.out.println('\\'); //输出一个反斜杠\
System.out.println("SHSXTVERYGOOD\t尚学堂真棒!!!");//在GOOD 后产生制表符
System.out.println("SHSXTVERYGOOD\b尚学堂真棒!!!");//光标回退一格把D覆盖
System.out.print("SHSXTVERYGOOD\n尚学堂真棒!!!");//GOOD后面产生换行打印
System.out.println("\ba"); //上一句的!会被a覆盖
System.out.print("SHSXTVERYGOOD\r"); //光标回到行首
数字型的表现形式
整数的不同进制
二进制(B): 由0,1组成 ,以0b/0B开头表示二进制
八进制(O): 由0~7组成 ,以0开头表示八进制
十进制(D): 由0~9组成,默认就是
十六进制(H): 0~9和A、B、C、D、E、F组成 ,其中字母大小写都可以 ,以0x/0X表示十六进制
这几种进制的转换方法是:
其他进制转十进制:从后往前,从最后一位开始*进制数,次方从0开始每次+1,最终所有位数的值求和。
十进制转其他进制:一直除以要转为的进制数,得数为0为止,余数从下往上看。
浮点数的表现形式
一种是直接表示,比如0.15,其中0可以省略。
System.out.println(0.15); //两种表示方法都可以
System.out.println(.15);
一种是科学计数法表示,其中e表示10。
例如:1.234e2 就表示1.234*10^2 1.234e-2 就表示1.234/10^2
运算符
算数运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符、位运算符(了解)
单目运算符|一元运算符:操作数只有一个,++ ,–,-负号
双目运算符|二元运算符: +, - ,/ ,*, %
三目运算符|三元运算符:条件运算符
- 其中+运算符,当+左右两边由字符串的出现,就作为字符串的连接符使用,最终得到一个字符串结果。
- ++,–运算符,在程序中有两种情况,当对于自身来说,它们是自身的自增一和自减一,如果参加运算时,++a和a++是有区别的,++a是先自身加一,然后在参加运算,a++是先参与运算,然后再自身加一。
赋值运算符
1、=是基本赋值运算符,是java中唯一一个自右向左运算的符号,优先级别最低。
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,最终转为十进制,比之间使用(* /)效率高。
java键盘输入的类Scanner
操作流程:
1.导包
说明Scanner类的地址,使用import关键字+路径,导入包 java.util.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结束功能(接收一整行),可以消除next()遇到空格不再接收的缺点。
4.关闭
变量.close();
注意:一定要再这个类使用完毕Scanner之后再关闭,否则后面重新开启也无法继续使用。
java中产生随机数的类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)
java的流程控制语句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和条件表达式之间的区别:
- if可以对多个条件多次判断
- 条件表示肯定会有结构
- 条件运算符结构比较简单,效率较高,if比较直观