课程内容:
-
Java中的数据类型
-
Java中的运算符
Java中的数据类型
-
什么是数据类型
数据类型可以理解成数据的单位
Java是一个强类型的编程语言 所有的变量在第一次出现的时候必须有数据类型 第二次出现不需要数据类型
钱:元 角 分 百 美元 日元
个数:个 只 条 栋....
长度:毫米 米 千米 厘米 -
面试题:Java中的数据类型分为几种?
2种
基本数据类型 简单数据类型 程序里面自带的数据类型
引用数据类型 自定义数据类型 程序员自己开发的数据类型 -
面试题:Java中的基本数据类型分为几种?
4类8种
布尔类型:boolean -> 需要判断
*:只能使用true[真]/false[假]进行赋值
*:在C++中可以使用true/false/数字 进行赋值
boolean x = true;
boolean y = false;
字符类型:char 底层基于Unicode编码实现的 不区分中英文 统一的都是2个字节 = 16位
1个字节 = 8个位
char x = 'a';//指定字面值的赋值方式
char y = '中';//指定字面值的赋值方式
char z = '\t';//转义字符
\t \r \b \n
制表符 返回行首 退格键 换行
char a = 97;//通过ascii编码进行赋值
char b = '\u4e2d';//通过Unicode编码进行赋值
char内容的长度必须是1
String内容的长度不定
整数类型:符号位1 + 数值位n-1
byte short int long
8 16 32 64 位
1 2 4 8 字节
* L/l
*:整数类型默认是int类型
*:long类型的结尾需要加上L/l 尽量写L
*:如果数字超出int类型最大边界的话 注意使用long
int num1 = 55;//十进制赋值 *****
int num2 = 055;//八进制赋值
int num3 = 0x55;//十六进制
int num4 = 0b1100;//二进制 since jdk7.0
byte:-128 127
short:-32768 32767
int:-2147483648 2147483647
long:-XXX XXX
浮点类型:符号位 + 幂值位 + 数值位
float double
32 64
F/f D/d
*
单精度 双精度
float x = 45.5F;//F需要加上
double y = 45.5D;//D可以不加
float = 符号位1 + 幂值位8 + 数值位23
double = 符号位1 + 幂值位11 + 数值位52
float精度 < double 精度 < BigDecimal
如何创建BigDecimal对象:
BigDecimal x = new BigDecimal("值");
加法:[BigDecimal] BigDecimal对象1.add(BigDecimal对象2)
减法:[BigDecimal] BigDecimal对象1.subtract(BigDecimal对象2)
乘法:[BigDecimal] BigDecimal对象1.multiply(BigDecimal对象2)
除法:[BigDecimal] BigDecimal对象1.divide(BigDecimal对象2)
比较:[int] BigDecimal对象1.compareTo(BigDecimal对象2) -
基本数据类型之间的转换
取值范围小-》大
char取值范围:0-65535
byte取值范围:-128 127
short取值范围:-32768 32767
char
16
byte short int long float double
8 16 32 64 32 64
当我们拥有左侧的数据类型[取值范围较小] 想要变成右侧的数据类型[取值范围较大] 直接赋值 转换自动完成
当我们拥有右侧的数据类型[取值范围较大] 想要变成左侧的数据类型[取值范围较小] 不能直接赋值 需要强制类型转换
总结:
小的数据类型可以直接给大的数据类型赋值
大的数据类型需要强转成小的数据类型
char和short之间需要双向强转 [取值范围交集]
char和byte之间需要双向强转 [取值范围交集] -
十进制和二进制之间的转换
正数:
1 2 4 8 16 32 64 128 256 512....2(n)
byte x = 45;
45 = 32 + 8 + 4 + 1 = 00101101
byte x = 77;
77 = 64 + 8 + 4 + 1 = 01001101
负数:正数二进制取反+1
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
byte x = -45;
正数:45 = 00101101
取反 11010010 +
1
11010011
byte x = 100;
100 = 64 + 32 + 4 = 01100100
byte y = -100;
01100100
取反 10011011
+ 1
10011100
byte x = 80;
80 = 64 + 16 = 01010000
byte y = -80;
正数:01010000
取反:10101111
+ 1
10110000 -
浮点类型和二进制之间的转换
float x = 45.75F;
1:将两个部分全部转换成二进制
45 = 32 + 8 + 4 + 1 = 101101
0.75 = 11
不断 * 2取整数
0.75 * 2 = 1.5
0.5 * 2 = 1.0
101101.11
2:将上面的结果转换成二进制的科学计数法
101101.11
1.0110111 * 2(5)
3: 对号入座
符号位1 + 幂值位8 + 数值位23
0 10000100 01101110000000000000000
幂值位默认值:127 + 5 = 132=128+4=10000100
01000010001101110000000000000000
float x = 100.25F;
1:将两个部分全部转换成二进制
100 = 64 + 32 + 4 = 1100100
0.25 = 01
0.25 * 2 = 0.5
0.5 * 2 = 1.0
1100100.01
2:将上面的结果转换成二进制的科学计数法
1100100.01
1.10010001 * 2(6)
3:对号入座
符号位1 + 幂值位8 + 数值位23
0 10000101 10010001000000000000000
127 + 6 = 133 = 128 + 4 + 1 = 10000101
100.25 -》 01000010110010001000000000000000
float x = 25.5F;
1:将两个部分全部转换成二进制
25 = 16 + 8 + 1 = 11001
0.5 = 1
0.5 * 2 = 1.0
11001.1
2:将上面的结果转换成二进制的科学计数法
11001.1
1.10011 * 2(4)
3:符号位1 + 幂值位8 + 数值位23
0 10000011 10011000000000000000000
127 + 4 = 128 + 2 + 1 = 10000011
01000001110011000000000000000000
float y = 17.1F;
两个部分全部转换成二进制
17 = 16 + 1 = 10001
0.1 = 000110011[0011]
0.1 * 2 = 0.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
10001.000110011[0011]
将上面的结果转换成二进制的科学计数法
10001.000110011[0011]
1.0001000110011[0011] * 2(4)
符号位1 + 幂值位8 + 数值位23
0 10000011 00010001100110011001100
127 + 4 = 128 + 2 + 1 = 10000011
01000001100010001100110011001100
小结:
数据类型:标签:BigDecimal,int,数据类型,day3,char,二进制,m1,byte From: https://www.cnblogs.com/zhaodenghui33/p/18185467
• 基本数据类型:
• 引用数据类型 程序员自己开发的数据类型 -》 class XXX
重点:
- 理解boolean char int long double的使用场景
- 熟悉BigDecimal常规方法
- 基本数据类型相互赋值
- 引用数据类型的开发