java细节总结
1.如果返回值为void,即没有返回值,方法中有return 编译就会报错,即使是return null;
?
这点非常值得注意,因为java的数组内存分配和c不同,如果像上面这样写,java的内存分配如下图:
所以a[1][1]是不存在的。
?
而对于c来说,声明时必须至少指定第二维的长度。
??值得注意的是第一行中,char型和int型做运算,先转化为int型,'a'+3结果为int,又int可直接向下赋值给char,short,byte只要不超过其表数范围。
-----------------------------------------------------
-----------------------------------------------------
?
4.源代码积累专楼
【1】Integer源码
我们先来创建一个Integer对象,下面用到了自动装箱
public Integer(int value) { this.value = value; }?
原来每个封装类都保留了一个与其对应的基本类型作为成员变量,在构造的时候对其进行初始化。调用intValue方法就返回了这个值。
注意每个封装类都是如此,就连Boolean中也保留了一个boolean的成员变量。