Java学习笔记1---数据类型
一、Java的数据类型
- 内置数据类型(8种):
- byte:默认值是0 8位
- short:默认值是0 16位
- int:默认值是0 32位
- long:默认值是0L 64位
- float:默认值是0.0f 32位
- double:默认值是0.0 64位
- boolean;默认值是false
- char:16位
2.引用数据类型(2种):
1)对象:默认值是null
2)数组:默认值是null
二、自动类型转换
取值范围小的可以自动转为取值范围大的类型,反之不可,但可以用强制类型转换,如
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
1.对于byte,short,char,int,long类型:
a)在+-*/%运算中:
当两个操作数中没有long类型时,两个操作数中非int类型会先自动转换为int类型,再参与运算,返回结果为int;
当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long;
b).在自加和自减运算中,
操作数的类型是什么就是什么,不会发生转化。
2.对于float,double两个浮点数据类型与整型数据类型的运算:
如果运算的操作数含有float或者double类型的,其他类型自动转化为float或double类型
三、拆箱与装箱
Integer total = 99;
执行上面那句代码的时候,系统为我们执行了:
Integer total = Integer.valueOf(99);
int totalprim = total;
执行上面那句代码的时候,系统为我们执行了:
int totalprim = total.intValue();
valueOf这个函数的源码:
可见,当valueOf(int i)中的i>=128或者i<-128,函数的返回是一个新的对象!