文档注释
文档注释是用于生成API文档(用于说明类、方法、成员变量的功能),javadoc工具默认只处理以public或protected修饰的类、接口、方法、成员变量、构造器、和内部类之前的文档注释。
整型
1)赋值问题
long bigDig = 9999999999999;
//错误代码,系统不会把整数值当成long类型处理,所以超出int的表述范围,从而引起错误
long bigDig = 9999999999999L
//在数值后使用L后缀,强制是用long类型(L更易与数字1区分)
//同理double、float类型的赋值也是如此
C#中并不存在这个问题…感觉很难受。
2)定义二进制数
int binVal1 = 0b11010100; //212
byte binVal2 = 0B11010100; //-44
long binVal1 = 0b11010100L; //当数值末尾加上L后缀时,则为64位了
- 最高位是符号位(1为负,0为正);
- int是4byte(即32位),而11010100是8位长,不足32位,最高位为0,所以是正数;
- byte是1byte(即8位),最高位为1,所以是负数;
3) 下画线分割数值位数
当程序中用到的数值位数特别多时,我们可以使用下画线来分割数值位数,这个很喜欢。
int binVal1 = 0b1111_1111_0001_1111;
double pi = 3.14_15_926;
字符型
1)ASCII字符集与Unicode字符集
- ASCII字符集为8位编码。特殊字符用转义字符来进行表示(‘\n’);
- Unicode字符集为16位编码,又被称为万国码。直接使用Unicode值来表示,格式是’\uXXXX’,XXXX代表一个十六进制整数。(’\n’=’\u000a’);
char ch1 = '\n';
Char ch2 = '\u000a';
浮点数
1) 赋值问题
浮点数默认是double类型的,如int类型一样,如果希望得到一个float类型的数,需要进行强制转换。
Float f = 5.6F;
2) 科学计数法
5.12e2 =
5.12∗102
5.12
∗
10
2
只有浮点数才可以使用科学计数法形式表示。51200是一个int类型的值,而512e2则是浮点数。
3)正无穷大、负无穷大、非数(NaN)
正浮点数 / 0 = 正无穷大,可用Double.POSITIVE_INFINITY表示
负浮点数 / 0 = 负无穷大,可用Double.NEGATIVE_INFINITY表示
0.0 / 0.0 = 非数
所有正无穷大整数除以0则会抛出异常。
布尔型
1)Java中的bool值
- Java中boolean类型的值只能够是true或false,不能用0或非0来代表。
- 其他数据类型也不能转换成boolean类型。
- boolean类型虽然只需要1位即可保存,但实际会为其分配1byte的空间。
类型转换
1)自动类型转换
表数范围小的数值可以直接赋给另一个表数范围大的变量,否则需要进行强制转换。
(虽然int与float都是用4个字节进行存储,但float表示的范围却比int大,其实是因为它们的存储方式有本质上的不同,float的存储结构=符号位(1bit)+指数(8bit)+尾数(23bit),参考链接)
2) 字符串转换成其他类型
String str = "45";
int iVal = Integer.parseInt(str);
double bVal = Double.parseDouble(str);
常用的有:int对应Integer、double对应Double、float对应Float。