当前位置:首页 > java面试题
MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
MVC是一条创建软件的好途径
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。
7)如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?(瞬联)
interface A {
int x = 0; } class B {
int x =1; }
class C extends B implements A {
public void pX() {
System.out.println(x); }
public static void main(String[] args) { new C().pX(); } }
答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确(输出的是1),而接口的属性默认隐含为 public static final.所以可以通过A.x来明确(输出的是0)。 下面的代码运行时会不会报错 interface Playable {
void play(); }
interface Bounceable {
void play(); }
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball(\}
class Ball implements Rollable {
private String name; public String getName() {
return name; }
public Ball(String name) {
this.name = name; }
public void play() {
ball = new Ball(\ System.out.println(ball.getName()); }
}
答案: 错。\没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的\。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说\ball = new Ball(\实际上是\static final Ball ball = new Ball(\。在Ball类的Play()方法中,\= new Ball(\改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。因此编译器将在\这里显示有错。
8)请说一下java中为什么要引入内部类?还有匿名内部类?(瞬联,IBM)
9)请说一下final,finally和finalize的区别?(瞬联)
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
共分享92篇相关文档