1.转义字符
Java中有些字符,Java语法赋予了特殊的含义,如果不想让这些字符代表特殊含义,想要表示其字符本身,可以使用转义字符进行转义,转义字符从\开始。(例:\'、\"、\\分别表示:'、"、\)
例举比较常用的几个:
\t(制表符):一个制表符位置代表8个空格,制表符位置前面的内容如果满制表符符位的整数倍,重新开辟一个制表符位,如果不满,补全一整个制表符位置,也就是8个空格位。
\n(换行):光标从这一行的行尾换到下一行的行首。
\b(退格):光标回到上一格,如果\b后面没有内容的输出,对原数据不影响,如果\b后面存在内容的输出,会覆盖原有位置的内容。
2.数值表现形式
整型:进制: 满几进一
二进制 : 由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
3.数据类型转换
正常: 对应类型的数据赋值给对应类型的变量
(注:boolean类型不参与类型转换)
(1).自动类型提升:
小 --> 大
大范围类型 变量名 = 小范围类型的数据;
(2).强制类型转换
大--> 小,有可能会损失精度
小范围类型 变量名 = (小范围类型)大范围类型的数据;
强转是发生在赋值之前的,大范围类型的数据强转为小范围类型,然后赋值给对应的小范围类型的变量
(注意:1.当多种类型参与运算时候,结果为参与运算中最大的数据类型
2.当多种类型参与运算时候,如果参数运算的最大类型小于int类型,结果提升成为int类型
3. byte->short->int->long->float->double
4.当byte,short,char赋值的时候,只要在其范围内的常量就能够成功赋值)
4.运算符
运算符根据作用的不同分为:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符。
(1)算数运算符
加号(+)也可作为加法运算,也可以用作正号,同时用作字符串的连接。当+左右两边一旦出现字符串,+作为字符串的连接符使用,最后会把左右两边的数据拼接成一整个字符串得到结果
% 模以 取模 求余数
操作1%操作数2 当操作数1<操作数2时候,结果为操作数1
注意:一个字符型数据参与运算(四则运算),会前转为十进制的整数再运算--> 参照Unicode,ASCII
(2)赋值运算符
基础赋值运算符 =
=是java中唯一一个自右向左运算的符号
扩展赋值运算符 (算数运算符+基础赋值运算符)
+= a+=b ==> a = a+b;
-=
*=
/=
%= a%=b ==> a = a%b;
缺点:
不直观
优点:
提高执行效率,编译期会自动优化为扩展赋值运算符
自动做强制类型转换
(3)关系运算符
> 、<、 >= 、<=
只能针对数值型|能够转为数值型的数据进行操作
== !=
可以针对任意类型数据进行操作
结果为boolean类型的运算符
(4)逻辑运算符
逻辑运算符:
& 与
一个为false就是false,两个都为true,结果才为true
| 或
一个为true就是true,两个都为false才是false
! 非 取反
!true->false
!false->true
^ 异或
相同为false,不同为true
短路运算符 : 当左边的操作数的值就能够决定最终的结果,右边操作数将不会执行(例如:System.out.println(10<5 && 10/0==0);此输出语句使用短路运算符&&时,右边的分母为0不会出现异常。)
短路与 : 与单与逻辑相同
短路或 : 与单或的逻辑相同
推荐使用短路运算符
两边的操作数为boolean类型
结果为boolean类型结果
(5)位运算符(了解即可)
把操作数转为二进制,对二进制的操作数进行某种规则的运算,最终得到的二进制的结果再转为十进制。
以下三个 运算符,当操作数为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的倍数进行乘除,建议使用位移运算符效率更高
public class Test{
public static void main(String[] args){
//位运算符计算
System.out.println(3&2); //2
System.out.println(3|2); //3
System.out.println(3^2); //1
//位移运算符
System.out.println(3<<2); //12
System.out.println(12>>2); //3
System.out.println(9>>2); //2
}
}