Java的数据类型(三)
一、概念
Java是一种强类型的语言,针对内中数据都定义了明确的数据类型
二、分类
A、基本数据类型
B、引用数据类型(类,接口,数值)
三、基本数据类型
数据类型 占用字节数
A、整型
byte 1
short 2
int 4
long 8
B、浮点型
double 4
float 8
C、字符
char 2
D、布尔
boolean 1
四、注意事项
1、整数默认是int类型
2、浮点数默认是double类型
3、长整型后缀用L或者l标记,建议使用L
4、单精度浮点数用F或者f标记,建议使用F
5、Boolean类型不能转换为其他的数据类型
五、默认转换(从小到大的转换)
1、byte,short,char-int-long-float-double
2、byte,short,char相互之间不能转换,他们参与运算首先转换为int类型
六、强制转换
1、概念:从大的数据类型到小的数据类型
2、格式:目标数据类型 变量=(目标数据类型)(被转换的数据);
3、注意:不要随意去使用强制转换,因为它隐含了精度损失问题
byte a=3;
int b=4;
byte c=(byte)(a+b)
七、练习
1、思考题1:请问下面是否有问题
double d=12.345;
float f=d;
2、思考题2:看看两个定义有没有区别
float f1=(float)12.345;//通过一个double类型转换过来的
float f2=12.345;//f2本身就是一个float类型
3、面试题:哪句是编译失败的,为什么?
byte b1=3,b2=4,b;
b=b1+b2;//因为变量相加,会先看类型问题,最终把结果赋值的也会考虑类型问题,这个是类型提升,所以有问题
b=3+4;//常量相加,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错
4、看程序写结果
通过字符和一个整数相加,我们给出一张表:ASCII码表,通过这表,需要记住三个值:
'a' 97
'A' 65
'0' 48
System.out.println('a') ;//a
System.out.println('a'+1);//98
5、看程序写结果2
字符串数据和其他数据做+,结果是字符串类型,这里的+不是加法运算,而是字符串连接符
System.out.println("hello"+'a'+1);//helloa1
System.out.println('a'+1+"hello");//98hello
System.out.println("5+5="+5+5);//5+5=55
System.out.println(5+5+"=5+5");//10=5+5