学Java也有些年头了,但无时无刻不深感Java基础知识、Java的OO以及Java的API也就是所谓的Core Java之重要性,从来不敢放松对它们的反复学习和提炼。并且事实证明在对它们的慢慢积累和深透的学习中悟出更多的编程之道,编程能力也在一步步见长。即使在转而学其它语言的时候应用相应套路也会事半功倍(不过抓住不同语言之区别也至关重要,要不会走很多弯路)。
最近决定重读Core Java,并希望能找到以前遗漏的部分,并梳理出个更清晰的头绪。做到先把书由薄读厚,然后把书由厚读薄!(再说计算机的书本来就没有薄的,汗)不打算大篇幅的把内容都贴上来,只是想借助blog记录些需要时刻注意的重点供自己与大家分享。
言归正传,抛个砖引个玉,先来一篇Java基础类型,可能你觉得这是Java里最简单的概念,其实里面的东西未必每个人都清楚,并能运用的很好。
Java整型
浮点类型
一些需要注意:
浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类。
char类型
在Java中,char类型用UTF-16编码描述一个代码单元。强烈建议不要在程序中使用char。
boolean类型
在C或C++中数值或指针可以代替boolean的值,0相当于flase,非0相当于true,而在Java中则不行,并且在编译时就会报错。
最近决定重读Core Java,并希望能找到以前遗漏的部分,并梳理出个更清晰的头绪。做到先把书由薄读厚,然后把书由厚读薄!(再说计算机的书本来就没有薄的,汗)不打算大篇幅的把内容都贴上来,只是想借助blog记录些需要时刻注意的重点供自己与大家分享。
言归正传,抛个砖引个玉,先来一篇Java基础类型,可能你觉得这是Java里最简单的概念,其实里面的东西未必每个人都清楚,并能运用的很好。
Java整型
int | 4字节 | -2147483648 ~ 2147483647 (正好超过20亿) |
short | 2字节 | -32768 ~ 32767 |
long | 8字节 | -9223372036854775808 ~ 9223372036854774807 |
byte | 1字节 | -128 ~ 127 |
浮点类型
float | 4字节 | 大约±3.40282347E+38F (有效位数为6-7位) |
double | 8字节 | 大约±1.79769313486231570E+308 (有效位数为15位) |
一些需要注意:
1
if
(x
==
Double.NaN)
//
is never true
1
if
(Double.isNaN(x))
//
check whether is "not a number"
浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类。
char类型
在Java中,char类型用UTF-16编码描述一个代码单元。强烈建议不要在程序中使用char。
boolean类型
在C或C++中数值或指针可以代替boolean的值,0相当于flase,非0相当于true,而在Java中则不行,并且在编译时就会报错。