数据类型:
boolean 类型数据只允许取值true 或 false(不可以使用0 或非0的整数来代替true和false,区分于C语言)。
char:Java中用" u四位十六进制的数字 (即使在注释中出现u ,后面如果跟的不是4个数字,也会报错)"表示将字符转换成对应的unicode编码,字符类型要用单引号括起来。有人说char其实也是整型是没有问题的。
double和float并不能表示一个精确的数字,当我们写doubled=0.0的时候,其实java并不知道我们要的数是0.0,他可能给我们生成的数字是0.01。因为double只有64位,所以,即便你写的是0.000000(324个0),那也只能说是无限接近0,但不是0。
Java浮点型常量默认是double,则要声明一个常量为float型,则需在常量后加上f 或 F
java里只有浮点型的变量才可以接受科学计算式结果
String不属于基本数据类型; String是一个类,表示字符串
数据类型的转换:
向上转换:
boolean 类型是不可以转换为其他基本数据类型。
整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
容量小的类型可自动转换为容量大的数据类型;
byte,short,char → int → long → float → double
byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。
向下转换:
容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度的降低或溢出,使用时要格外注意。
有很多种类型的数据混合运算时,系统首先自动的将所有数据转换成容器最大的哪一种数据类型,再计算。
浮点型:默认是double
整型:默认是 int
long l = 123L;
int i = (int) l;
double d = 3.14;
float f = (float) d;
表达式的数据类型自动提升 所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型; 如果一个操作数是float型,计算结果就是float型; 如果一个操作数是double型,计算结果就是double型。
C/C++只允许 % 两边的操作数是整型的,而Java既支持整型也支持浮点型.
逻辑运算符:
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。 “ ^ ”与“|”不同之处是:当左右都为true时,"^"结果为false。
表达式值的数据类型即为表达式的类型。