昨天晚上经历了蚂蚁金服校招一面,在面试开始前面试官打电话来说,到时候会给我发两道题,进行在线编程测试,当时其实是很慌的,因为我对自己笔试没有信心,算法是我学的最差的东西。

拿到题以后,还好,第一道题是求链表的回环节点,第二道题是手写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的单例了!于是我当时就提出了这个问题,并补充道,“那么我们这里可以用一个同步代码块来控制这一段代码,使得同一时间只有一个线程访问这段代码。”更新了代码以后,面试官表示满意,接下来进行一些基础问题的考察。

首先讲了一下目前实习做的项目中有应用到的技术;

然后考察了一些计算机网络的知识,主要是三次握手和四次挥手;

接下来是linux系统,问我有没有用过什么linux命令,我回答了平时查看构建脚本的远程debug端口的命令和查看tomcat的日志的命令;之后问了下进程和线程的区别,常规答法,没有亮点。

然后是使用数据库索引有什么好处,首先提了一下数据库索引的类型,然后就索引对查询的优化做了个简单的介绍,大概就是会有专门的二叉树存储索引字段对应的记录这样,再然后讲了下当进行当前读时,使用索引可以方便innodb加行锁,不用索引因为会对全部的聚集索引加锁所以使用的是表锁;数据库相关之后还问了数据库隔离级别的问题,常规答法,扩展了一下可重复读在innodb引擎下,因为会加间隙锁,所以防止了幻读的问题;

由于我的简历中有提到过自己阅读过《深入了解Java虚拟机》,所以面试官又问我对JVM中的内存模型是否了解,大致讲了下JVM中的内存结构,然后问了下堆栈的异同,这一块当时记得不是太清楚了,所以只回答了堆是线程共享的,栈是线程私有的;这一块之后问了下是否了解垃圾收集算法,比如CMS算法,由于记不清了不太敢乱说,所以只提了下JVM中对于垃圾收集是分代收集的,新生代采用复制算法,老年代采用标记-清除算法;

接下来考察了容器类的知识,面试官问我对hashmap的了解。我这边分了三块进行回答,一块是获取键值对,一块是放入键值对,最后一块是获取null键。常规hash()和equals()方法,以及发生hash冲突时的处理。这里顺便扩展了一下放入时可能产生hash扩容的问题,顺便同concurrentHashMap的扩容算法进行了一下对比。系统的阅读过源码的话,回答上来都不难;

再讲了下Spring的特性AOP和IOC,我回答了实现主要使用的方法,没有深入回答,之后面试官问我IOC有什么好处,我说一个是将bean交给Spring容器管理,开发不用关心具体细节。二一个是spring容器中的bean都是单例的(虽然这样说我也不知道这样单例有什么好处。。。)。

最后问了下我觉得还有什么补充的,我提了下自己之前由于好奇redis是如何实现分布式锁的,所以自己去了解的过程。都讲完了以后,由于我在今年三月的时候投过一次阿里的新零售事业部,当时一面的时候直接挂掉了,而且可能面试评价不是很好,所以面试官问了一下我当时是什么情况,解释了一下以后,面试官表示我的学习能力很强。

之后我问了下面试官对我的面试评价,大致是能看出我不是只去背原理,而是自己去了解了的,并且学习能力比较强,一面直接通过,之后会联系我进行二面。

总的来说,这次蚂蚁金服的面试体验比较好,考察较为全面,在面试过程中我能看出面试官更重视的是一个探索的过程,而不是结果,所以通过自己探索获得的知识能更加得到面试官的认可。在这一方面,不得不提到算法的最大作用是对我们思维的形成,今天在刷题的时候,看到一道求折半查找的平均次数的题,有一道解析是,直接利用log2N来计算得到答案,而其他解答都是将折半查找画为一个平衡二叉树的结构之后进行计算,这时不禁感慨,如果直接使用log2N来计算,就会错过这个抽象的过程。在我目前的实习过程中,我的主管也经常对我说,给我们的需求一般时间都会比较宽裕,主要是为了让我们在做完需求后可以有时间进行一个思考或是优化,思维的形成是无尽的财富,是不能与普通的死记硬背获得的道理相比对的。因此平时要多思考,多优化,灵活应变才能变得更优秀。

蚂蚁金服校招一面有感相关推荐

  1. Java程序员校招蚂蚁金服,微信抢红包实战案例,纯干货

    开头 对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一.因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统.内存.CPU.编程语言等多方面的基础能力,更为考验一 ...

  2. 记蚂蚁金服前端第一次电面(校招)

    这是我结合蚂蚁金服前端一面的经历整理的一些笔记.如果有什么不对的地方,欢迎大家指出. 关于这次面试相关的技术方面的问题我整理在了另外一篇文章里 前面的问题主要是对整个人的了解,后面技术方面的问题会根据 ...

  3. 蚂蚁金服前端第一次电面(校招)笔记整理

    这是我对自己蚂蚁金服前端一面的记录文章,整理出来的技术方面的知识点.如果有什么不对的地方,欢迎大家指出. 原文章地址 1. 快速排序 它的基本思想是 通过一趟排序将要排序的数据分割成独立的两部分,其中 ...

  4. 校招----蚂蚁金服测试开发面经

    经历过秋招已经知道自己什么b水平了,春招的时候好一点的公司投了开发,连开发简历都过不了的大厂就投了测试.测开之类的岗位.刚才吃着橘子的时候浙江那边面试官直接打电话过来了,面了大概半个小时(9点还在上班 ...

  5. 读《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践》有感

    支付宝架构不仅仅是项目,同时它必须要考虑互联网金融业务的特殊性,目前它的架构平台被分为三层:运维平台(IAAS):主要提供基础资源的可伸缩性,比如网络.存储.数据库.虚拟化.IDC等,保证底层系统平台 ...

  6. 我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文

    本人16年毕业于普通二本院校网络相关专业,工作经验两年半,目前就职业于一家普通民营企业. 由于非985.211学历硬伤,校招进大厂的门槛远高于同届985.211的毕业生.于是乎,从毕业到现在经历了三家 ...

  7. 蚂蚁金服开源增强版 Spring Boot 的研发框架!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:gitee.com/sofastack/sofa-b ...

  8. 北京/上海/杭州 | 蚂蚁金服智能引擎技术事业部招聘知识图谱算法工程师

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 蚂蚁金服 这里有来自国内外 TOP 互联网公司的资深从业者,也有多位近年阿 ...

  9. 2019蚂蚁金服面试总结(Java方向)

    大家好,断更已久的我回来了 年初得蚂蚁垂青(本人非985/211,蚂蚁真的不是很在乎学历!!!),有了一次社招机会,前后经历三关,受益匪浅,在此与各位朋友分享经历与心得. 第一关:在线笔试 笔试题内容 ...

  10. 没错,我真的拒了蚂蚁金服的Offer

    点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转载自公号七分熟pizza,作者:七分熟pizza 导读 网上的面试题很多,但是讲解备战面试经历的文 ...

最新文章

  1. C 语言中的 switch 语句 case 后面是否需要加大括号
  2. 【OpenCV】图片操作小结:RAW图转image以及image连续保存
  3. 你的企业在什么情况下需要人工智能?快来看看你需要具备哪些条件与能力吧!...
  4. mapx实现热点效果
  5. mysql维护索引,mysql 索引优化
  6. ifm virtual check part3
  7. CentOS 7.6 安装 Maven 3.6.3
  8. 消息透露苹果新款MacBook Pro预计将在第三季度或第四季度发布
  9. 论文投稿,遭遇身份歧视该咋办?
  10. 如何让应用出现在LINUX的右键/打开方式/更多应用
  11. 浅谈功能测试-->自动化测试
  12. 流媒体直播协议与比较
  13. UE4 相机对焦学习笔记
  14. win10更新后 chrome内核浏览器总是打开网页一直加载 甚至打不开 解决方法
  15. 高校开学,小心钓鱼邮件趁火打劫
  16. 海通股票交易系统通道接口错误怎么办
  17. 实现用户登录权限验证
  18. 金融行业云都有什么需求
  19. 很值得收藏的安卓开源控件库
  20. Java全栈技术体系汇总----主目录----持续更新

热门文章

  1. 天龙八部3d最新服务器,天龙八部3D妙笔生花新服务器开启公告
  2. 多年珍藏的Android开发必备网站和工具
  3. 华为钱包开卡显示服务器异常,华为手机喜迎微信指纹支付 会遇到的11大常见问题!...
  4. virtualbox窗口和win10窗口切换
  5. openSUSE 11.2 上试动Mono
  6. c语言条件语句程序实例,c语言if(c语言if语句例子)
  7. 1030:计算球的体积
  8. 【WIN】windows自启动项查询整理
  9. c语言程序设计九宫格,C语言课程设计之智力九宫格.doc
  10. 一座5g基站造价多少?