1. 字符类型 char
常量: 'a' '中' '等'
字符: 文字以及符号
字符集:
字符 编码
a 97
编码格式:
ASCII 一个字节byte 8位 bit
gbk 2
big5
java使用得编码: Unicode 全球统一码 万国码
占用控件大小 2个字节 16位
特殊字符:
直接输入输不出来得符号
转义字符: '\'
通过转义字符加其他一个符号去代表一个特殊符号。
常见得特殊字符得表示:
回车 \r
换行 \n
制表 \t
' \'
\\ \
可以用四位16进制得数表示字符
如:
'a' '\u0061'
字符串: 不属于基本数据类型
String 类型
"sdfsdfsd中"
字符跟字符串得区别:
'' 跟 "" 'a' 跟 "a"
'' 错误得写法
"" 内容为空得字符串
2. 整数类型
常量得表现形式:
十进制 1 123
二进制 0b101010
八进制 012
十六进制 0x1A
原码:
反码: 正数得反码还是本身
负数得反码 : 符号位不变其他取反
补码: 整数得补码还是原码本身
负数得补码: 反码 + 1
byte 字节 1字节 8位 -128~127
short短整型 2 16 -2(15) ~ 2(15)-1
int 整型 4 32 -2(31) ~ 2(31)-1
long 长整型 8 64 -2(63) ~ 2(63) - 1
常量得大小:
1 0b1010 默认就是int类型
long类型得常量: 1L
注意: byte short char 是可以并且只能用int类型得常量进行赋值,并且这个常量不能超过他们得表数范围。
3. 浮点类型
常量得表现形式:
1.2 0.012
科学计数法: 0.12E1 0.12E-1
二进制表示形式
数符 指数 尾数
正/负 符号/值 0.12(当然没有小数点之前得数)
float 单精度 4字节 32位 -3.403E38 ~ 3.403E38
有效数字: 7位
数符 1 指数 7 尾数 24
double 双精度 8字节 64位 -1.798E308 ~ 1.798E308
有效数字: 16位
数符 1 指数 11 尾数 52
常量占用空间大小:
1.2 0.12E1 默认都是double
float 1.2f
注意: 1. 浮点类型是有误差得数
2. double类型得精度是float得两倍所以占用空间也是两倍,基于性能上考虑得一般情况下要使用浮点类型得数据得时候建议使用float。
4. 基本数据类型之间得类型转换
除了boolean类型之外其他数据类型之间是可以相互转换得。
容量大小:
byte < short char < int < long < float < double
默认转换
容量小得数据转容量大得数据是可以默认转换得。
注意: byte short char 之间不能默认转换,一旦参与运算都是 先转成int类型再计算。
运算是有封闭性得:同种类型得数据才能计算,并且计算得结果一定是该种类型。
3 / 2
强制转换
容量大得数据是不能默认转成容量得小得数据,如果一定要转得话要加强制转换符
强制转换符: (类型)
注意: 强制转换容易造成精度溢出,所以慎重使用。
5. 多种数据类型混合运算
容量小转容量大再计算
123 + 234L + 23.5e3 + 53.34f
判断:
int i=1,j;
float f1=(float)0.1; float f2=123;
long l1 = 12345678,l2=8888888888L;
double d1 = 2e20,d2=124;
byte b1 = 1,b2 = 2,b3 = (byte)129;
j = 1+10;
i = i/10;
i = (int)(i*0.1);
char c1='a',c2=125;
byte b = (byte)(b1-b2);
char c = (char)(c1+c2-1);
float f3 = f1+f2;
float f4 = (float)(f1+f2*0.1);
double d = d1*i+j;
float f = (float)(d1*5+d2);
6. Java 语言支持如下运算符:
算术运算符: +,-,*,/,%,++,--
关系运算符: >,<,>=,<=,= =,!=
逻辑运算符: !,& , | , ^ , &&,||
位运算符: &,|,^,~ , >>,<<,>>>
赋值运算符: =
扩展赋值运算符:+ =,- =,* =,/ =
字符串连接运算符:+
6.1 算术运算符: +,-,*,/,%,++,--
+,-,*,/,%
双目运算符 双元运算符
参与运算: 常量、变量
数值类型得数据: 整数 浮点类型 char(转int)
不会改变参与运算得变量本身,一旦有运算一定会有结果。
++,--
单目运算符 单元运算符
参与运算: 变量
数值类型得数据
会改变参与运算得变量(+1/-1), 一旦有运算一定会有结果。
左边
先改变变量本身(+1/-1得运算),再把变量保存得值当成运算结果赋值给别人
先运算 , 再赋值
右边
先把变量保存得值当成运算结果赋值给别人,再改变变量本身(+1/-1得运算)
先赋值,再运算
6.2 关系运算符: >,<,>=,<=,==,!=
双目运算符 双元运算符
参与运算: 常量、变量
参与运算得一定数值类型得数据
值: boolean
运用得过程:
判断 左边 是否 大于 右边
值: 是 / 否
true / false
==,!= 除了数值类型之外还可以是其他类型
可以用来判断两个数据是否一样(是否是同一个数据)
6.3 逻辑运算符: !,& , | , ^ , &&,||
参与: boolean类型得
常量、变量、得到boolean类型结果得运算式(表达式)
值: boolean
! 逻辑非 单目运算符 取反得操作
& 逻辑与 同为true 结果为true
| 逻辑或 只要一个为true 结果就为true
^ 逻辑异或 不一样就为true
&& 短路与 提高逻辑与得性能
左边得表达式结果为false就不再计算右边
左边得表达式结果为true 还是要计算右边
|| 短路或 提高逻辑或得性能
左边得表达式结果为true就不再计算右边
左边得表达式结果为false 还是要计算右边