昨天晚上经历了蚂蚁金服校招一面,在面试开始前面试官打电话来说,到时候会给我发两道题,进行在线编程测试,当时其实是很慌的,因为我对自己笔试没有信心,算法是我学的最差的东西。
拿到题以后,还好,第一道题是求链表的回环节点,第二道题是手写Java单例模式。第一道题普普通通,用了容器类的contains()方法。第二道题常规写法如下
public class singleMod{ public static Connection connection; public static Connection getConnection(){ if(connection==null){ connection = new Connection(); return connection; } }else{ return connection; } } }
写完以后面试官问我,“你有没有想过,这样写会出什么问题?”,面试官这样一说,我就想到了,啊!并发情况下不能保持connection的单例了!于是我当时就提出了这个问题,并补充道,“那么我们这里可以用一个同步代码块来控制这一段代码,使得同一时间只有一个线程访问这段代码。”更新了代码以后,面试官表示满意,接下来进行一些基础问题的考察。
首先讲了一下目前实习做的项目中有应用到的技术;
然后考察了一些计算机网络的知识,主要是三次握手和四次挥手;
接下来是