转义字符
转义字符
当java中有些字符,java语法赋予了特殊的含义,如果不想要这些字符代表特殊含义,想要表示其字符本身,可以使用转义字符进行转义
转义字符从\开始
\'
\"
\\
\t : 制表符
一个制表符位置代表8个空格
cmd中一个英文占据1个空格,一个汉字占据2个空格
制表符位置 前面的内容如果满制表符位的整数倍,重新开辟一个制表符位,如果不满,补全一整个制表符位置
\n 换行
光标从这一行的行尾换到下一行的行首
\b 退格
光标回到上一格
如果\b后面没有内容的输出,对原数据不影响,如果\b后面存在内容的输出,会覆盖原有位置的内容
数值型表现形式:
数值型表现形式:
整型 :
进制: 满几进一
二进制 : 由0,1组成 通过0b|0B开头
八进制 : 由0~7之间的数字组合而成 通过0开头
十进制 : 默认 由0~9之间的数字组合而成
十六进制 : 由0~9,a~f组合而成 通过0x|0X开头
转换:
其他进制转为十进制: 从后往前,从右往左,最后一位开始,当前这一个位置的数值*当前进制数^0开始,每次+1,最后的和为转为十进制的数据
十进制转为其他进制: 当前的十进制数据不停的除以2,每次关注余数,当结果为0不除了,余数从下往上看
浮点型:
1.当小数的整数位为0的时候,0.5-->0省略 : .5
2.科学计数法 e|E->10
1.23E3 - > 1.23*10^3
1.23E-3 - > 1.23/10^3
数据类型转换
数据类型转换
正常: 对应类型的数据赋值给对应类型的变量
boolean类型不参与类型转换
自动类型提升:
小 --> 大
大范围类型 变量名 = 小范围类型的数据;
强制类型转换
大--> 小,有可能会损失精度
小范围类型 变量名 = (小范围类型)大范围类型的数据;
强转是发生在赋值之前的,大范围类型的数据强转为小范围类型,然后赋值给对应的小范围类型的变量
注意:
1.当多种类型参与运算时候,结果为参与运算中最大的数据类型
2.当多种类型参与运算时候,如果参数运算的最大类型小于int类型,结果提升成为int类型
3. byte->short->int->long->float->double
4.当byte,short,char赋值的时候,只要在其范围内的常量就能够成功赋值
运算符
运算符
功能作用的不同分类:
算数运算符
赋值运算符
比较运算符|关系运算符
逻辑运算符
条件运算符
位运算符 (了解)
操作数: 运算符左右两边的数据成为操作数 3+4
表达式: 运算符连接左右两边的操作数整体称为表达式
语句 : 以;结束
操作数的不同分类:
单目运算符|一元运算符: 操作数为1个 ++ -- +(正号) -(负号)
双目运算符|二元运算符: 操作数为2个 a+b - * /
三目运算符|三元运算符: 条件运算符
算数运算符:
+
1)正号
2)加法运算
3)字符串的连接符
当+左右两边一旦出现字符串,+作为字符串的连接符使用,最后会把左右两边的数据拼接成一整个字符串得到结果
-
1)符号
2)减法运算
*
/
% 模以 取模 求余数
操作1%操作数2 当操作数1<操作数2时候,结果为操作数1
++ --
注意:
一个字符型数据参与运算(四则运算),会前转为十进制的整数再运算--> Unicode,ASCII
//编译不报错,运行时期会遇到一个异常 数学异常
//System.out.println(12/0); //java.lang.ArithmeticException: / by zero
自增自减
++ -- 一元运算符
++ 自增 自身+1
a++ ==> a = a+1;
++a ==> a = a+1;
-- 自减 自身-1
a-- --> a = a-1;
--a --> a = a-1;
只影响操作数本身
++放在操作数的前面或者后面,都是自身+1
--放在操作数的前面或者后面,都是自身-1
影响其他值(赋值,输出,表达式计算)
++|--放在操作数的前面,先+1|-1,然后再去运算
++|--放在操作数的后面,先参与运算,然后再自身+1|-1
赋值运算符
赋值运算符
基础赋值运算符 =
=是java中唯一一个自右向左运算的符号
扩展赋值运算符 (算数运算符+基础赋值运算符)
+= a+=b ==> a = a+b;
-=
*=
/=
%= a%=b ==> a = a%b;
缺点:
不直观
优点:
提高执行效率,编译期会自动优化为扩展赋值运算符
自动做强制类型转换
比较运算符 | 关系运算符
比较运算符|关系运算符
> < >= <=
只能针对数值型|能够转为数值型的数据进行操作
== !=
可以针对任意类型数据进行操作
结果为boolean类型的运算符
逻辑运算符
逻辑运算符:
& 与
一个为false就是false,两个都为true,结果才为true
| 或
一个为true就是true,两个都为false才是false
! 非 取反
!true->false
!false->true
^ 异或
相同为false,不同为true
短路运算符 : 当左边的操作数的值就能够决定最终的结果,右边操作数将不会执行
短路与 : 与单与逻辑相同
短路或 : 与单或的逻辑相同
推荐使用短路运算符
两边的操作数为boolean类型
结果为boolean类型结果
条件运算符
条件运算符
boolean表达式 ?值1 : 值2;
boolean表达式 : 值为boolean类型的表达式
1)计算表达式,得到一个boolean结果
2)如果结果为true,条件运算符结果为值1
3)如果结果为false,条件运算符结果为值2
位运算符
位运算符:(了解)
把操作数转为二进制,对二进制的操作数进行某种规则的运算,最终得到的二进制的结果再转为十进制
一下三个 运算符,当操作数为boolean类型作为逻辑运算符,操作数为整数,作为位运算符
& : 两边的操作数转为二进制,同一位置的两个数,一个为0就是0,两个都为1才1,结果转为十进制
| : 两边的操作数转为二进制,同一位置的两个数, 一个为1就是1,两个都为0才是0,结果转为十进制
^ : 两边的操作数转为二进制,同一位置的两个数, 相同为0,不同为1,结果转为十进制
位移运算符
<< 左移 : 第一个操作数转为二进制,向左移动第二个操作数个位置,空位补0,结果转为十进制
>> 右移 : 第一个操作数转为二进制,向右移动第二个操作数个位置,移出的位置舍弃,结果转为十进制
规律:
左移: 相当于*2的倍数 a<<b ==> a*2^b
右移: 相当于/2的倍数 a>>b ==> a/2^b
位运算符的执行效率较高,因为针对二进制的数据
当想要对2或者2的倍数进行乘除,建议使用位移运算符效率更高