42种数据类型与运算符(基本数据类型变量)
42种数据类型与运算符(基本数据类型变量)gbk 2 ASCII 一个字节byte 8位 bit 字符 编码 a 97 编码格式:
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 还是要计算右边