分享

5道笔试题,最后一道错误率高达90%!

 田维常 2022-12-06 发布于北京

你好,我是田哥

最近由于疫情影响,很多面试都直接省略了笔试环节,但凡能现场面试,五年工作经验以内,基本上都会先做笔试。笔试不一定会影响最终面试结果,但绝对影响你在面试官心中的印象分,从而可能会导致谈薪没底气。

下面来跟你分享5道笔试题:

题1

看下面这段代码,请说出最后输出什么?

public class Test {

    public static void main(String[] args) {
        int i;
        i=6;
        System.out.print(i);
        System.out.print(i++);
        System.out.print(i);
    }
}

这个应该相对还是蛮简单的吧,但凡你犹豫了一秒,那就只能说明你的基础不牢靠。

题2

下面这段代码输出结果是什么?

public class Test {

    public static int testException(int i) throws Exception {
        try {
            return i / 5;
        } catch (Exception e) {
            throw new Exception("exception in a aMethod");
        } finally {
            System.out.print("finally");
        }
    }

    public static void main(String[] args) {
        try {
            testException(0);
        } catch (Exception e) {
            System.out.print("exception in main");
        }
        System.out.print("finished");
    }
}

这也很简单哈

题3

下面来个选择题(多选题),当将选项( )的代码填到//todo delete处时,可以在Iterator遍历的过程中正确并安全地删除一个list中保存的对象。

/**
 * @author tianwc  公众号:java后端技术全栈
 * @version 1.0.0
 * @date 2022年12月06日 16:09
 */

public class Test {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("田哥");
        list.add("java面试辅导");
        list.add("666");
        System.out.println("删除前长度:" + list.size());
        Iterator<String> it = list.iterator();
        int index = 0;
        while (it.hasNext()) {
            String ss = it.next();
            if (needDelete(ss))) {
                //todo delete
            }
            index++;
        }
        System.out.println("删除后长度:" + list.size());
    }
}

A.it.remove() ;

B.list.remove(index);

C.list.remove(obj) ;

D.list.delete(index);

这其实也不难,但是至少能过滤一半以上的人。

题4

继续看代码写出输出结果:

/**
 * @author tianwc  公众号:java后端技术全栈
 * @version 1.0.0
 * @date 2022年12月06日 16:09
 */

public class Test {
    public static void main(String[] args) {
        class A{
            public int i=3;
        }
        Object o=(Object)new Test();
        Test a=(Test)o;
        System.out.println("i="+a.i);
    }
}

这道题是个坑,一不小心就掉进去了。

题5

写出下面程序运行的结果:

/**
 * @author tianwc  公众号:java后端技术全栈
 * @version 1.0.0
 * @date 2022年12月06日 16:09
 */

public class Test {
    public static void main(String[] args) {
        int i = 0;
        for (f('A'); f('B') && (i < 2); f('C')) {
            i++;
            f('D');
        }
    }

    static boolean f(char c) {
        System.out.print(c);
        return true;
    }
}

这道题基本上能过滤掉90%的面试者。

下面我们来公布答案,为了不让大家怀疑的给出答案是否正确,所以,采取截图的形式。

答案

题1的答案:

题2的答案:

题3的答案: 

题4的答案:

题5的答案:

好了,五个题的答案已给出,你做对几个?

看看大家都做对了多少。

是不是觉得贼坑?

记住:不要小看任何一个笔试题,基本上都是公司精挑细选为你准备的。

关于上述笔试答案详情,我们下期再聊。

最后,给你推荐一个刷java面试题的神器(已录入1000多题):

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多