标签:float 字节 大于 基础概念 概念 整数 lock 完全 转换
进制
进制 | 示例 | 前缀 | 备注 |
十进制 | int x = 10; | ||
二进制 | int x = 0b10; | 0b或0B | 计算机储存 |
八进制 | int x = 010; | 0 | 兼容以前程序 |
十六进制 | int x = 0xceaf | 0x或0X | 0~9,a~f |
1、自动转换,安全,目标类型取值范围大于源类型,即能容纳源类型所有值2、强制转换,目标类型取值集合并未能完全容纳元类型,因此易产生数据丢失,只有通过强制转换运算符通过编译器
- 基本数据类型取值范围(小~大)
byte···>short···>int···>long···>float···>doublechar···>int···>long···>float···>double
1、当目标类型比源数据类型更高时,即低数据类型转换为高数据类型,为自动转换,可以自动完成,无需额外操作2、当目标类型不比源数据类型更高时,该转换为强制转换,目标类型=(目标类型)源类型说明:char与short,以及char与byte之间,并没有类型的高低之分,无论如何转换,都要强制转换,使用类型转换运算符
当高类型储存的数据在低类型的取值范围内时,并不会产生数据丢失,反之,则否细节:
x + y * z ···> 表达式x ,y,z ···> 操作数+,* ···> 运算符
1、byte,short,char会提升为int型2、表达式结果的类型与参与运算的操作数的最高类型一致原则说明:两项原则同时成立,密不可分类型提升是基于运算的,如果没有参与运算(即无运算符),该数据类型就不会得到提升表达式结果类型最低为int,最高为double示例:byte b = 1;byte b2 = 20;b2=b; //此时无运算符,数据无提升b2=-b; //此时参与运算,b为变量,非常量,且-b即为b取反,相当于b*(-1),此时-b已提升为int型,需强制转换,因此:b2 = (byte)-b
byte,short,int,long在java当中,根据表达式结果类型的原则可知,整数的除法运算,其结果还是整数,当无法整除时,取值原则为“向零取整”,与四舍五入无关
char(无符号类型,使用‘ ‘作为界定)java采用的是unicode字符集,当类型为char的字符参与运算时,字符会以unicode字符集中对应编码的码值参与运算示例:char c = ‘a‘;System.out.println(c + 1);此时输出值为 98,因为a在unicode字符集的码值为97(字母大小写相差32,即A码值:65,a码值:97)
float,double虽然float占4字节,较long的8字节更节省空间,且float类型的有效范围更大,但浮点类型储存的是近似值,并不精确float类型能精确储存的只有2n的类型1.避免数量级相差较大的浮点类型的计算,考虑到浮点类型的最小间隙值,相差较大的数量级运算可能无法跨越最小间隙值2.避免进行等量判断,即让浮点类型参与到布尔类型的表达式中
标签:float 字节 大于 基础概念 概念 整数 lock 完全 转换
原文地址:http://www.cnblogs.com/liuwei6/p/6556988.html