1、 Java变量:
变量的作用在于存放运算时所需的数据,申明变量时需指定变量的数据类型,因为不同数据类型申明的变量存放的数据与大小都不同,
Java的两大数据类型:
(1) 内置数据类型(基本数据类型)
(2) 引用数据类型
2、 基本数据类型:
Java语言有八种基本数据类型。六个数组类型(四个整数型,两个浮点型)、一个布尔型、一个字符类型
1、在给变量赋值时,Java默认把整数值定义为int
所以如果赋值大于int的最大值时不仅要用符合的数据类型并且在值的后面定义值的属性:
如果赋与的是浮点值,java默认把浮点值定义为double,要给值定义
不定义时会出现double不能转换为float的错误 :cannot convert from double to float
3、 整形数据类型与浮点数据类型都可以互相转换:
(浮点数与整型转换时会把小数去掉,不保留也不舍入)
(1) 隐式转换(仅存在于由小转大):
(2) 显示转换(多用于由大转小):
(一)强制转换
4、 Java包装类
除了int和char的包装类,其余的包装类都是首个字母大写
int→Integer char→Character
包装类是一个方法,它不仅可以对基本数据类型进行封装也有属性可以对基本数据类型进行操作
(1) 进行转换
(2) 使用其方法查看基本数据类型属性
5、 float类型(32位):1bit(符号位) 8bits(指数位) 23bits(尾数 位)
double类型(64位):1bit(符号位) 11bits(指数位) 52bits(尾 数位)
在java中因为有一位被充当符号位,所以实际的位数会少一位,
符号位中0代表正,1代表负
指数为中也有符号位,所以实际的指数位也少一位
尾数为存放的二进制小数的位数
6、 char字符类型,相当于Unicode字符,输入的值会在Unicode字符中相匹配找到对应的值
7、 java中进行强制转换时,会出现内存溢出
机器数: 一个数在计算机中的表现形式叫做机器数,这个数有正负之分,在计算机中用一个数的最高位(符号 位)用来表示它的正负,其中0表示正数,1表示负数。 例如正数7,在计算机中用一个8位的二进制数来表示,是00000111,而负数-7,则用10000111表示, 这里的00000111和10000111是机器数
真数: 计算机中的机器数对应的真实的值就是真数,对最高位(符号位)后面的二进制数转换成10进制,并根 据最高位来确定这个数的正负。对于上面的00000111和10000111来说,对最高位后面的二进制数转换 成10进制是7,在结合最高位的值,得出对应的真数分别是7和-7
原码: 用第一位表示符号,其余位表示值。因为第一位是符号位,所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111] 即 [-127 , 127] ,原码是容易被人脑所理解的表达方式
反码: 正数的反码是其本身,负数的反码是符号位保持不变,其余位取反。例如正数1的原码是[0000 0001],它的反码是是其本身 [0000_0001],-1的原码是[1000_0001],其反码是[1111 1110]
补码: 正数的补码是其本身,负数的补码是在其反码的基础上+1,例如正数1的原码是[0000_0001],他的补码 是其本身[0000_0001], -1的补码是[1111 1111]
原因在于java实施的是多的除掉
130在int中呈现的原码为:0000 0000 1000 0010
在转换byte时因为,byte的位数有限,所以进行除掉多余的数
130在byte中呈现的补码为:1000 0010
反码为:1000 0001
原码为:1111 1110
因此从原码中得出值为-126
8、 java中整数与浮点数之间会出现精度损失
因此在计算中,只能取得近视值,而不是准确值
整型转换为浮点型时:
转回后的值都出现了变化,原因在于float实际能容纳的尾数只有23位
double实际能容纳的尾数只有52位,而Long最大为64位,在此情况下java便会只取近似值,因此便出现了精度损失
float与double之间的转换虽不会出现精度损失,但也会出现值不一样,原因在于double尾数更高,所以double的值更近视
9、 java中不同进制输入的方式
10、 在java中String为引用数据类型
Java语言支持的转义字符