一、变量与数据类型
变量就是申请内存来存储值,就是说,当创建变量时,需要在内存中申请空间,内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能存储该类型数据
二、 两大数据类型
1 内置数据类型
(1)数字类型
(2)引用数据类型
在java中,引用类型的变量类似于C/C++的指针,引用类型指向一个对象,指向对象的变量是引用变量,这些变量在声明时被指定为一个特定的类型,
对象、数组都是引用数剧类型,
所有引用类型的默认值都是null
一个引用变量可以用来引用任何与之兼容的类型
三、java常量
常量在程序运行时是不能被修改的,在java中final关键字来修饰常量,声明方式和变量类似,final double PI=3.1415927。在使用字面量的时候,前缀0表示8进制,0x代表16进制,java的字符串常量也是包含在俩个引号之间的字符序列
四、自动类型转换
整形,常量、字符串数据都可以混合运算,不同类型的数据线转化为同一类型,然后进行运算,转换从低级到高级
数据类型转换必须满足如下的规则
1.不能对boolean类型进行类型转换
2.不能把对象类型转换成不相关类的对象
3.在把容量大的类型转换成容量小的类型时,必须使用转置类型转换
4.转换过程中可能导致溢出或损失精度
例如
int i=18
byte b =(byte)i
因为byte类型是8位,最大值是127,所以当强制转化为byte时,值128就会溢出
5.浮点数到整数的转化是靠舍弃小数,而不是四舍五入
五、自动类型转化
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如short数据内省的位数为16位,就可以自动转化为32的int类型
六、强制类型转化
1.条件是转化的数据类型是兼容的
2.格式:(type)value type是要强制类型转换后的数据类型
七、隐含强制类型转换
1.整数的类型是int
2.浮点型不存在这种情况,因为在定义float类型时必须在数字后面跟上F或者f