Java学习笔记(1) 对象初始化顺序
在Java中,当一个对象被创建时,成员变量的初始化及构造方法的调用遵循以下顺序:
1. 将分配给对象的存储空间初始化成二进制的零。
2. 调用所有基类的构造方法。这个步骤会不断地反复递归下去,首先是构造这种层次结构的根,然后是下一层子类,等等,直到最底层的子类。
3. 按照声明的顺序调用成员的初始化方法。
4. 调用子类的构造方法主体。
下面举例说明。
class Glyph {
Glyph(){
System.out.println("Glyph() before draw()");
draw();
System.out.println("Glyph() after draw()");
}
void draw(){
System.out.println("Glyph.draw()");
}
}
class RoundGlyph extends Glyph {
private int radius = 1;
RoundGlyph(int r){
radius = r;
System.out.println("RoundGlyph.RoundGlyph(), radius = " + radius);
}
void draw(){
System.out.println("RoundGlyph.draw(), radius = " + radius);
}
public static void main(String[] args) {
new RoundGlyph(5);
}
}
运行结果:
Glyph() before draw()
RoundGlyph.draw(), radius = 0
Glyph() after draw()
RoundGlyph.RoundGlyph(), radius = 5
可以看出,在输出结果的第二行中,由于步骤1的缘故,radius的值为0.
相关文档:
xml中键名为 英文,键值为中文,读取解析,取值实现翻译
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList; ......
首先,AMF3似乎并不支持List.ArrayList等数组的解析...Java客户端传递List对象,AMF3无法解析为Array...
原因是:AMF3只支持基础数据类型...
故,需要将List等数据转换为Object[] !这样AMF3才能将Java传递的数组解析为Array...
由于数组的创建,即便一开始不赋值,也需要设置数组的length,如:String[] myString = new Str ......
几天前,刚看了IBM Developerworks上某个技术大牛做的关于设计REST风格的Java MVC开发框架的文章,今天在Google Code上发现了一个基于Java的REST风格的MVC开发框架,取名WebWind
。
“WebWind是一个Java MVC框架。和常见的MVC框架如Struts、WebWork不同,WebWind天生支持用户友好的URL,让Web应用程序对搜索引擎更加 ......