转义字符
- 用途:用来表示有些具有特殊含义的字符
- 使用方法:\+ 要转义的字符 例如:\"
- 常见的转义字符:
\t 制表符:一个制表符代表8个空格,一个字母占1个空格,一个汉字占2个空格。使用制表符时会查看制表符前面的字符数是否满足8的整数倍,若为8的整数倍则添加8个空格,若不为8的整数倍则添加相应的空格数达到8的整数倍。
\b退格:使光标会删一格。使用退格符时若退格符后还有要添加的字符则会覆盖当前光标处的内容。
\n换行:使光标移到下一行行首。
\r 回到行首:使光标移到当前行的行首。使用\r时若\r后还有要添加的字符则会从光标所在处开始往后覆盖要添加的字符数。
数值型的表示形式
在计算机中数值的表示形式有多种,常见的表示形式有二进制、八进制、十进制、十六进制。
- 整数的不同进制:表现为满几进一
二进制: 由0,1组成 以0b/0B开头表示二进制
八进制: 由0-7组成 以0开头表示八进制
十进制: 计算机默认表示
十六进制: 由0-9,a-f组成 大小写都可以 以0x/0X表示十六进制 - 不同进制间的转换
整数部分:
十进制转其他进制:短除法。转换为什么进制就除该进制,除到商为0为止,结果为余数倒写。例如:十进制数11转换为二进制数,就短除以2,结果为1011。
其他进制转十进制:每位乘以该位的位权,然后求和。例如二进制数1011转换为十进制,(123)+(0*22)+(121)+(1*20)=11
小数部分:看精确的位数(有的小数转换时容易产生循环)
十进制转其他进制:小数部分乘以需转换的进制,结果取整数部分。 - 浮点数的表示形式
普通方法:小数点前的0可省略。例如0.5可写为.5
科学计数法:e表示10为基数,e后的数为指数。例如1.234e2=123.4,
1.234e-2=0.01234
运算符
- 运算符的种类:
算数运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符
位运算符 - 操作数:运算符左右两边的数叫做操作数
- 运算符按操作数可分为:单目运算符(只有一个操作数),双目运算符(有两个操作数),三目运算符(有三个操作数)。
- 算数运算符:+ - * / % ++ - -
加号+:
1、表示正数
2、加法运算
3、连接符(当+号两边存在字符串时)
减号-:
1、表示负数
2、减法运算
乘号*:乘法运算
除号/:除法运算,结果取商(结果为可除尽的整数部分,例如:56/3,结果为18)
取余号%:结果取余,例如:56/3,结果为2
自增号++:例如++a,a++。加号在前表示先使a的值+1,再使用a的值。加号在后表示使用a的值,再使a的值+1。
自减号–:例如–a,a–。减号在前表示先使a的值-1,再使用a的值。减号在后表示使用a的值,再使a的值-1。 - 赋值运算符:
1、基本赋值运算符:=
java中唯一一个自右向左运算的符号
优先级别最低
2、扩展赋值运算符(算数运算符+基本赋值运算符):+= -= *= /= %=
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
短路与&&:若第一个表达式为flase,第二个表达式不执行
短路或||:若第一个表达式为true,第二个表达式不执行 - 条件运算符:
格式:条件语句? 值1 : 值2;
结果:值为boolean类型
执行流程:
1、计算条件语句
2、如果值true,最终结果取值1
3、如果值false,最终结果取值2 - 位运算符:
计算方法: 先把操作数转为二进制,参与运算,结果转为10进制
与& :同一位数的两个数,如果一个为0就是0,两个都为1才是1
或| :同一位数的两个数,如果一个为1就是1,两个都为0才是0
异或^ :相同为0,不同为1
右移运算符>>:相当于/2的第二个操作数次方
左移运算符<<:相当于*2的第二个操作数次方
引用数据类型
使用方法:
1、创建引用数据类型的变量
格式:引用数据类型 变量名 = new 引用数据类型();
例如:创建一个Scanner的变量
Scanner sc=new Scanner();
2、使用功能
变量.功能名字();
- Scanner : 接受键盘输入
1、导包:说明Scanner类的地址
格式:import关键字+路径 导包
例如:impo java.util.Scanner;
注意:导包时要在类的上面导包
2.创建Scanner类型的变量–根据公式 Scanner sc=new Scanner();
3.使用功能
nextInt(): 接受int类型的整数
nextByte():接收byte类型的整数
nextShort():接收short类型的整数
nextLong():接收long类型的整数
nextDouble():接收Double类型的小数
nextFloat():接收float类型的小数
next():接收用户输入的字符串类型的数据
注意:next()从有效字符开始接收,知道遇到空格,tab不再接收了,enter停止功能
nextLine():接收字符串数据,遇到enter结束功能(接收一整行)
4.关闭
变量.close();
注意:一定要再这个类使用完毕Scanner之后再关闭,否则后面重新开启也无法继续使用 - Random: 产生随机数
1.导包:import 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)
流程控制语句
三大控制语句:
1、顺序结构:
2、选择结构:根据判断,满足条件执行某些代码
3、循环结构:重复执行某些代码
- 选择结构:if…else
1、单分支:
if(条件语句){
满足条件要执行的语句
}
执行流程:
1.计算判断条件(值为boolean类型的表达式)
2.如果true,执行{}语句体
3.如果false,不执行,直接跳过if结构
2、双分支:
if(条件语句){
语句体1;
}else{
语句体2;
}
无论是否满足都会有与具体执行,肯定会有一个结果
3、多分支:
if(条件语句1){
语句体1;
}else if(条件语句2){
语句体2;
}else if(条件语句3){
语句体3;
}
…
else{
语句体n;
}
注意:
1.如果if结构中存在else,肯定有结果,如果不存在,可能没有结果
2.如果if的语句体只有1句,前后{}可以省略
-if和条件表达式之间的区别:
1、if可以对多个条件多次判断
2、条件表示肯定会有结构
3、条件运算符结构比较简单,效率较高,if比较直观