◆[转]Java面试陷阱第三波

转载 2004年09月22日 16:22:00

6.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

class Something {

    int i;

    public void doSomething() {

        System.out.println("i = " + i);

    }

}

 

有什么错呢? 看不出来啊。

答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

 

7.

class Something {

    final int i;

    public void doSomething() {

        System.out.println("i = " + i);

    }

}

 

和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?

答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。

 

8.

public class Something {

 

    public static void main(String[] args) {

        Something s = new Something();

       

        System.out.println("s.doSomething() returns " + doSomething());

    }

   

    public String doSomething() {

        return "Do something ...";

    }

}

 

看上去很完美。

答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能访问non-static instant variable。

 

9.

此处,Something类的文件名叫OtherThing.java

class Something {

    private static void main(String[] something_to_do) {       

        System.out.println("Do something ...");

    }

}

 

这个好像很明显。

答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。

 

10.

今天最难的一题:

interface Playable {

    void play();

}

 

interface Bounceable {

    void play();

}

 

interface Rollable extends Playable, Bounceable {

    Ball ball = new Ball("PingPang");

}

 

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("Football");

        System.out.println(ball.getName());

    }

}

 

 

这个错误不容易发现。

答案: 错。"interface Rollable extends Playable, Bounceable"没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说"Ball ball = new Ball("PingPang");"实际上是"public static final Ball ball = new Ball("PingPang");"。在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ballreference,而这里的ball来自Rollable interfaceRollable interface里的ballpublic static final的,finalobject是不能被改变reference的。因此编译器将在"ball = new Ball("Football");"这里显示有错。

中国互联网掀起第三波造富热潮

                        中国互联网掀起第三波造富热潮                        http://www.sina.com.cn 2007年12月28日 02:...
  • lisky119
  • lisky119
  • 2007年12月28日 09:55
  • 323

ASP.NET学习笔记六 搭建“第三波书店”系统框架

一般搭建三层框架项目是这样的:1、创建一个空的解决方案2、创建类库项目3、创建网站项目4、添加项目之间的引用,需要注意的是表示层(网站项目层)是不需要添加其它层引用的,因为运行后,会自动产生对其它项目...
  • ppjava2009
  • ppjava2009
  • 2009年11月27日 10:59
  • 1585

java面试题的陷阱

1.abstract class Name { private String name; public abstract boolean isStupidName(String name) {}}错。...
  • zerowzj
  • zerowzj
  • 2008年04月03日 10:16
  • 930

【笔试面试】第三波

1、String的split(String regex)方法参数注意点  使用这个方法时,当我们直接以“.”为参数时,是会出错的,如:String str = "12.03"; String[] ...
  • u014277445
  • u014277445
  • 2016年08月06日 11:41
  • 153

一起来谈谈,面试中的那些“陷阱问题”

1. 前言众所周知,我们在面试的时候,HR 会通过各种各样的问题来“刁难”你。但是面对这些问题,每个人的反应会各不相同,HR 也就能以此来推断出你平时大概是个什么样子的人,并考虑你是否合适这个职位。可...
  • MR_LP
  • MR_LP
  • 2016年12月21日 11:46
  • 2843

java笔记之byte的面试题案例分析

前言 这里只举例简单的数据类型的byte,其他的数据类型类似。 主要分为 byte的案例分析和数据类型的笔记两部分 正文 byte的案例分析 1. byte n=10+127; ...
  • u011018979
  • u011018979
  • 2014年03月25日 12:03
  • 1249

利用resteasy框架构建rest webservice----第三波:实现文件上传---非form提交方式(实例、教程)

因为工作原因,很久时间木有更新了,不怕有时间久继续更新: 基本的resteasy的搭建详情请看第一、二波,我这里指的上传是指利用resteasy来获取:客户端HTTP开发包发送的body请求----...
  • johnjobs
  • johnjobs
  • 2014年02月21日 09:36
  • 1291

《Java程序员面试宝典(第4版)》 试读感想

《Java程序员面试宝典(第4版)》 试读感想         谈到Java程序员面试这个话题,我想,每个从事java开发的人都有一套自己的见解,特别是工作3年以上的。对于学校里将要毕业即将开始找工...
  • chwshuang
  • chwshuang
  • 2015年11月06日 18:11
  • 2779

逻辑(面试)题目中的陷阱

2007年05月20日 23:18:00 [原文地址:关于逻辑学的文章zz ]正如充满正义感的人无法容忍犯罪的发生,富于美感的人不能包容丑陋和瑕疵一样,一个逻辑严谨的人是没办法忍受哪怕一点点逻...
  • softart
  • softart
  • 2007年10月27日 20:35
  • 436

59秒关机病毒重启原理分析附解决办法

最近想搞搞VS2010,不幸的没装成反而引来电脑老出故障,偶然上网看到几个Dos关机命令,尝试了下shutdown -r,这个是关闭并重启电脑,就出现一个秒后关机重启电脑,...Y#....回忆当年从...
  • sendling
  • sendling
  • 2010年06月23日 23:20
  • 2849
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:◆[转]Java面试陷阱第三波
举报原因:
原因补充:

(最多只允许输入30个字)