JAVA面试错题收集:(四)

写这一篇博客是为了记录一下自己在秋招中的面试过程和心得,昨天晚上笔试了金蝶的提前批笔试。也有行测的题不过更多的是C语言的题,其中题中以数据结构中的内部排序为主。

下面我来说一下让我印象深刻的题目

1. int a=0,b=0,c=0;

if(a=b+c)

printf("a");

else printf("b");

这是一道选择题,我上机测试了一下是链接时出错,其实我还真不是很清楚其中的道理所在


2.二叉树的度的问题,这个是个多选题。因为很长时间都没有碰数据结构了,很多选项也不是很拿的准

二叉树二度节点和叶子节点的数量关系:

假设共有节点 N 个, 二度几点 x 个,一度节点y个, 则叶子节点个数(设为z)?

N个节点,那么共有树枝N - 1个

1个二度节点有2个树枝,叶子没有,一度节点有1个,那么推导出一共有 2x + y 个

2x + y = N - 1;

x   + y + z = N; 

由以上两式得出,z = x + 1;

一个具有20个叶子节点的二叉树、它有(19)个度为2的节点

3.排序的时间复杂度问题,这个也是个选中题

下面是一个总的表格,大致总结了我们常见的所有的排序算法的特点。

排序法 平均时间 最差情形 稳定度 额外空间 备注
冒泡 O(n2)     O(n2) 稳定 O(1) n小时较好
交换     O(n2)     O(n2) 不稳定 O(1) n小时较好
选择 O(n2) O(n2) 不稳定 O(1) n小时较好
插入 O(n2) O(n2) 稳定 O(1) 大部分已排序时较好
基数 O(logRB) O(logRB) 稳定 O(n)

B是真数(0-9),

R是基数(个十百)

Shell O(nlogn) O(ns) 1 不稳定 O(1) s是所选分组
快速 O(nlogn) O(n2) 不稳定 O(nlogn) n大时较好
归并 O(nlogn) O(nlogn) 稳定 O(1) n大时较好
O(nlogn) O(nlogn) 不稳定 O(1) n大时较好

4.写个单例模式

public Singleton class{

private static volatile Singleton instance=null  ; //在这个地方笔试的时候忘写volatile关键字了

private Singleton(){}

public static Singleton getInstance(){

if(instance==null){

synchronized(Singleton.class){//这个地方又写成instance了

if(instance==null) instance=new Singleton();//这个地方笔试的时候忘了double check 了

}

}

return instance;

}

}


5.既采用了TCP又采用了UDP的协议是哪个协议,选择题:DNS。这个真心不知道。。。


还有好多题没有记住。。

总结一下,感觉这一次笔金蝶真的是完败。。。基础知识没有来的及复习,还有多选题很多都拿不准的。。一句话还是基础知识不扎实。。

经过这场笔试得到了一个教训,一定要注重基础不能眼高手低。不然就和我一样了,今天就记录到这吧,开始工作了。。。


你可能感兴趣的:(JAVA进阶--基础查缺补漏)