Java笔试必考题(一)类的初始化顺序
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的
关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某
种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际
上是在考查我们对于继承情况下类的初始化顺序的了解。
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化
顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下
面的测试代码来验证这一点:
Java 代码
public class InitialOrderTest {
// 静态变量
public static String staticField = "静态变量";
// 变量
public String field = "变量";
// 静态初始化块
static {
System.out.println(staticField);
System.out.println("静态初始化块");
}
// 初始化块
{
System.out.println(field);
System.out.println("初始化块");
}
// 构造器
public InitialOrderTest() {
System.out.println("构造器");
}
public static void main(String[] args) {
new InitialOrderTest();
}
}
运行以上代码,我们会得到如下的输出结果:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造器
这与上文中说的完全符合。那么对于继承情况下又会怎样呢?我们仍然以一段测试代码来获
取最终结果:
Java代码 :
class Parent {
// 静态变量
public static String p_StaticField = "父类--静态变量";
// 变量
public String p_Field = "父类--变量";
// 静态初始化块
static {
System.out.println(p_StaticField);
System.out.println("父类--静态初始化块");
}
// 初始化块
{
System.out.println(p_Field);
System.out.println("父类--初始化块");
}
// 构造器
public Parent() {
System.out.println("父类--构造器");
}
}
public class SubClass extends Parent {
// 静态变量
public static String s_StaticField = "子类--静态变量";
// 变量
public String s_Field = "子类--变量";
// 静态初始化块
static {
System.out.println(s_StaticField);
System.out.println("子类--静态初始化块");
}
// 初始化块
{
System.out.println(s_Field);
System.out.println("子类--初始化块");
}
// 构造器
public SubClass() {
System.out.println("子类--构
相关文档:
public static boolean telnetTest() {
boolean b=false;
Socket server = null;
try {
server = new Socket();
InetSocketAddress address = new InetSocketAddress(
"192.168.1.101", 80);
server.connect(address, 5000);
b=true;
} catch (UnknownHostException e) {
e.printSta ......
招聘-java高级开发工程师
目前公司业务发展迅速,需要优秀技术人员的加入,我们的标准非常简单。
我们不要求:
1、不要求你是名校毕业。
2、不要求你具有三年以上java开发经验,当然必要的开发经验是要有的,否则下面的要求你一定达不到。
3、不要求你了解其他开发语言,如C/C++、php、ruby。
4、不要求你精通数据库 ......
使用下面简单的Java程序测试命令行参数格式。
public class Test {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i].length() + ":" + args[i]);
}
}
}
编译后打开cmd命令提示符输入如下命令并查看结果:
java Test a aa ......
我现在是大二的学生,学的是电子商务专业,考虑到现在就业压力大,所以就自己自学了Java,以后想往Java程序员方向发展,这也给自己多条出路,现在Java SE 快学完了,但是不幸的是我陷入了深深的苦恼中,那就是学了后面,总忘记前面,我现在学到了GUI编程,马上就要动手开始项目了,就是聊天, 坦克大战的项目,一写项目就感 ......
Basic concepts in OOP
Encapsulation:隐藏实现过程,对外提供公开一致的接口、使软件易于更新与维护。
Polymorphism:一个事物自动获得另一事物的状态行为的机制。
Inheritance:一个类自动获得另一个类的属性或者方法的过程。
1.类的结构
类名
&nb ......