一、数据类型
1.基本数据类型
a).整数(byte、short、int、long)
byte 1个字节,8位,取值范围:-27 ~ 27-1(-128 ~ 127)
short 2个字节,16位,取值范围:-215 ~ 215-1(-32768 ~ 32767)
int 4个字节,32位,取值范围:-231 ~ 231-1(-2147483648 ~ 2147483647)
long 8个字节,64位,取值范围:-263 ~ 263-1
注意:Java中的整数默认类型是int型,如果超出int型取值范围,会被视为过大的整数
b).小数/浮点数(float、double)
float 4个字节,32位
double 8个字节,64位
补充:科学计数法赋值:2E3 <=> 2*103
注意:Java中的浮点数默认类型是double型,如果需要float型赋值,在数值后追加 “F/f ”
c).布尔(boolean)
boolean 1个字节,取值范围:true/false ,非真即假,常用来表达判断的结果
d).字符(char、转义字符)
char 2个字节,取值范围:0 ~ 65536 ,char类型也支持整数表现形式,但char表示整数时无符号,所有值均为正值。(尽可能不要把整数赋给char类型)
转义字符
换行符 “\n”、缩进(制表符) “\t”、反斜线\\、单引号\’、双引号\\"
2.引用数据类型
a).String字符串
“”之间的任意内容都是字符串
b).数组(见后文)
c).对象(见后文)
二、类型转换
1.自动类型转换
两种类型相互兼容,目标类型大于源类型
2.强制类型转换
两种类型相互兼容,目标类型小于源类型,例如:
double d = 13.25;
int a = (int) d;
byte<short(char)<int<long<float<double
强制类型转换规则:
①整数长度足够,数据完整,例如:
int a = 100; byte b = (byte) a; //b = 100
②整数长度不够,数据截断,例如:
int a = 10000; byte b = (byte) a; //b = 16(符号位变化,可能变为负数)
③小数强转整数,数据截断,例如:
double d = 12.34; int a = (int) d; //d = 12(小数位舍掉)
④字符整数互传,数据完整,例如:
char c = 65; int a = c; //a = 65
⑤boolean类型的取值为true/false,不可与其他类型转换。
三、运算符
1.算术运算符(+ - * / % ++ --)
补充: 关于 “ i++ ” 和 “ ++i ” ,前者先赋值,再自增;后者先自增,再自增。关于 “ i-- ” 和 “ --i ”,同上。
2.赋值运算符(+= -= = *= /= %=)
3.关系运算符(> < >= <= == !=)
4.逻辑运算符(&& || !)
5.三元运算符(布尔表达式?结果1:结果2)
四、自动类型提升
1.进行算术运算时
两个操作数有double,结果 提升为double;
两个操作数无double,有一个float,结果提升为float;
两个操作数无double、float ,有一个long,结果提升为long;
两个操作数无double、float、long ,有一个int,结果提升为int;
两个操作数无double、float、long、int ,均为short或byte,结果提升为int。
2.特殊
任何类型与String类型相加,实为拼接,结果自动提示为String