首页 > 代码库 > 《疯狂Java讲义》(五)---- 数据类型
《疯狂Java讲义》(五)---- 数据类型
一 注释
单行注释://
多行注释:/* */
文档注释:/**
*/
由于只有public或protected修饰的内容才是希望暴露给别人使用的内容,而API文档主要是向使用者提供信息,因此javadaoc默认只处理public或protected修饰的内容,如果开发者确实希望javadoc工具可以提取private修饰的内容,则可以在使用javadoc工具时增加-private选项。
javadoc工具默认不会提取@author和@version两个标记的信息,如果需要,应该在使用javadoc工具时指定-author 和 -version两个选项。
二 数据类型
- 基本类型(primitive type):
- boolean类型 1位
- 数值类型:
- 整数类型(默认整数是int)
- byte 1字节 -2^7 ~ 2^7-1
- short 2字节 -2^15 ~ 2^15-1
- int 4字节 -2^31 ~ 2^31-1
- long 8字节 -2^63 ~ 2^63-1
- char 2字节
- 浮点类型(默认浮点数是double)
- float 4字节 (第1位是符号位,接下来8位表示指数,再接下来2位表示尾数)
- double 8字节 (第1位是符号位,接下来11位表示指数,再接下来52位表示尾数)
- 整数类型(默认整数是int)
- 引用类型(reference type):
- 类
- 接口
- 数组
- null
- 二进制整数
计算机以补码的形式保存所有整数。补码计算规则:正数的补码和原码完全相同,负数的补码是其反码加一,反码是对原码按位取反,只是最高位(符号位)保持不变。
- 无穷大
正无穷大:Double.POSITIVE_INFINITY or Float.POSITIVE_INFINITY
负无穷大:Double.NEGATIVE_INFINITY or Float.NEGATIVE_INFINITY
非数:Double.NaN or Float.NaN
所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;而NaN不与任何数值相等,甚至和NaN都不相等。
只有浮点数除以0才可以得到正无穷和负无穷大,因为Java会自动把除数0当成0.0处理。但是如果一个整数值除以0,则会抛出异常:java.lang.ArithmeticException: / by zero
eg:
public class TestDate { public static void main(String[] args) { /* * Date date = new Date(1474496229424L); System.out.println(date); */ float af = 5.2345556f; System.out.println(af); double a = 0.0; double c = Double.NEGATIVE_INFINITY; float d = Float.NEGATIVE_INFINITY; System.out.println(c == d); System.out.println(a / a); System.out.println(a / a == Float.NaN); System.out.println(6.0 / 0 == 555.0 / 0); System.out.println(-8 / a); System.out.println(0 / 0); } }
输出结果:
5.2345557
true
NaN
false
true
-Infinity
Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.citi.icg.portal.resource.service.impl.TestDate.main(TestDate.java:22)
- Java7新增数值中使用下划线
通过使用下划线分隔数值,可以更直观地分辨数值常量中到底包含多少位。
《疯狂Java讲义》(五)---- 数据类型