Java面试基础(一)
关于main()的知识
不用main方法如何定义一个类?
Java 7 之前,可以通过使用静态初始化运行Java类;
Java 7 之后,没有main方法无法运行Java类。main()方法需要的参数必须是字符串数组;
main()方法的返回类型只能是空;
main()方法必须是静态的;
否则,调用main()方法时,JVM就得实例化它的类—>调用类的构造函数;
若类的构造函数有参数,JVM应该传递什么呢?
如果去掉main()方法的“static”声明,编译成功,运行失败。
我们可以重载main()方法。一个Java类可以有任意数量的main()方法。为了运行Java类,类的main()方法必须是
1public static void main(String[] args){}main()方法修饰符必须是
1public这样JVM才可以访问main()方法。
Java中不可以覆盖静态方法,故也不可覆盖main()方法。
你可以在Java中终结main()方法。
main()方法可以在Java中同步,可用修饰符synchronized。
其他
谈谈final, finally, finalize的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承;
finally是异常处理语句结构的一部分,表示总是执行;
finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
可以继承其他类或完成其他接口,在swing编程中常用此方式。
Static Nested Class 和 Inner Class的不同?
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化;
而通常的内部类需要在外部类实例化后才能实例化。