A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Wanibal 中级黑马   /  2016-4-25 22:42  /  875 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Wanibal 于 2016-4-25 22:43 编辑

基本数据类型 (primitive type)
在JAVA中预定义,用相应的保留关键字表示。基本类型是单个值,具有明确的取值范围和数学行为,而不是复杂的对象。
整型:byte short int long char,分别用8、16、32、64、16bits表示,但本质上char类型是int的一个子集。
byte由一个字节8位表示,取值范围【-127,128】。当操作来自网络、文件或其他IO的数据流时,此类型特别有用。
short由两个字节16位表示,取值范围为【-2^15,2^15-1】。可以通过整型字面值或字符字面值赋值,前提是不超出范围
int由四个字节32位表示,取值范围【-2^31,2^31-1】。byte和short在运算中会被自动提升为int类型或更高。
long由八个字节64位表示,取值范围【-2^63,2^63-1】。默认值为0L。
char由两个字节16位表示,【0,65535】,从'\u0000'到'u\ffff'。无符号,默认值为'\u0000'。

浮点型
float:使用32 bit表示,对应单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型。
double:64位表示,将浮点子面值赋给某个变量时,如果不显示在字面值后面加f或者F,则默认为double类型。java.lang.Math中的函数都采用double类型。
如果double和float都无法达到想要的精度,可以使用BigDecimal类。

boolean类型
boolean类型只有两个值true和false,默认为false。boolean与是否为0没有任何关系,但是可以根据想要的逻辑进行转换。许多地方都需要用到boolean类型。

字面值
在Java源代码中,字面值用于表示固定的值(fixed value)。数值型的字面值是最常见的,字符串字面值可以算是一种,当然也可以把特殊的null当做字面值。字面值大体上可以分为整型字面值、浮点字面值、字符和字符串字面值、特殊字面值。
基本类型之间的转换
自动转换
自动转换时发生扩宽(widening conversion)。因为较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。如果将字面值保存到byte、short、char、long的时候,也会自动进行类型转换。注意区别,此时从int(没有带L的整型字面值为int)到byte/short/char也是自动完成的,虽然它们都比int小。在自动类型转化中,除了以下几种情况可能会导致精度损失以外,其他的转换都不能出现精度损失。
》int--> float
》long--> float
》long--> double
》float -->double without strictfp
除了可能的精度损失外,自动转换不会出现任何运行时(run-time)异常。
强制类型转换
如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。强制转换采用转换操作符()。严格地说,将byte转为char不属于narrowing conversion),因为从byte到char的过程其实是byte-->int-->char,所以widening和narrowing都有。强制转换除了可能的精度损失外,还可能使模(overall magnitude)发生变化。强制转换格式如下:
(target-type) value。

6 个回复

倒序浏览
好,很有用
回复 使用道具 举报
非常感谢分享
回复 使用道具 举报
感谢分享!以后有实用的继续分享谢谢
回复 使用道具 举报
总结的灰常好
回复 使用道具 举报
好人一生平安
回复 使用道具 举报
复习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马