2017趋势面试(软件开发)总结

来源:互联网 发布:java车辆管理系统源码 编辑:程序博客网 时间:2024/06/06 04:41

前言

 感谢这两年来每天自己的坚持!

正文

 从拿到笔试,再面试结束拿到offer ,加起来一个星期左右吧,面试第一天顺利的话应该拿到两面,庆幸的在第二天拿到三面通知,第三天去参加最后的无领导小组面试,楼主早起在动车上猜测了下,应该跟网络安全有关,赶紧大概搜索下网络安全的信息,然后果不出所料,其实很好理解的,人家就是做网络安全的,最基本的面试公司你需要去了解吧,无领导小组题目是安卓系统的安全问题,如何保证安卓软件的安全,以及降低用户信息泄密以及财产损失的风险。无领导小组参加的第二次,讨论过程中,把几个队友说服了,后面都建议我去做总结,因为还有对攻环节,而且我们大家都聊的很不错,已经把流程划出来了,在这样的情况下,我果断让给了女生,普通话以及整体风貌都在博主之上哈,我就专心做自己的,后来在发放offfer时,跟面试官提到了,你们更关注的表现点在哪里?面试官告诉我是倾听。


 一面开始,趋势还是很准时的,基本让你几点去,前后不会差20分钟,我进去面试时一个面试官,我把简历递过去(趋势据说面试不要纸质简历。面试官都有电子的,但是出于礼貌,我递了一张),面试官真的有很认真的看我的简历,看了30秒以后,让我开始自我介绍,说完以后就开始提问题了,你参加过这么多比赛跟项目经验,你觉得最能体现你技术的是哪个,讲一下。
 楼主详细说了,项目不是特别复杂,是自己鼓捣的一个高考志愿填报查询平台,维护数据库,编写逻辑代码实现的,面试官大概问了下,难点在哪里,你用到的技术是什么,我说完以后,面试官点了点头。
 然后开始问,你主要是Java吧,那你知道多态吧,说一下吧,巴拉巴拉解释,举例,那你说说重载跟覆盖吧,巴拉巴拉说完,都是最基本的知识了,所以很轻松,然后面试官问,你知道进程和线程吧,能不能谈一下,这个作者要好好说,前天南瑞面试官这么问,你知道window系统下的线程跟Java下的线程有什么区别吗?当时脑子蒙了一下,window下的线程,后来我就说我是不是可以先说Java的线程,说到线程,自然离不开说进程,就一起说了,进程是运行中的程序集合体,每个进程独享一块内存,线程是程序执行的最小单位,一个进程包含很多线程,资源共享,当然给线程添加本地变量,也可以独占一小块内存,这样就能保证线程安全,线程存在竞争,需要加锁。
 那你说一下,什么叫资源竞争,什么叫获得锁?我通俗的讲了一下,其实面试官还是C++了解的多,经常以C++的经验来问我,但是语言好就好在相通,一些最基本的常识都是差不多的,所以用Java来说并无不同,面试官说趋势也是存在做Java的,不是全部C++,C++可能做操作系统安全多一点。整体来说,面试官还是很友好的。
 还有一个,多核是什么?我说了下并行并发的原理,然后问我,你说,如果一个进程,它会用到多核么,也就是同一进程里的线程,会处于不同的CPU上运行么,因为不同进程的资源是隔离开的,怎么去处理,可以不可以这样?
 我说既然多核出来了,那就应该要用起来,面试官也认可我的是可以的,但是怎么分配,程序上需要怎么写,硬件要怎么配合,我说了下程序的并行,并不是所有程序都可以并行,多核的使用需要程序代码的配合,有限顺序的程序并不一定能够发挥多核的优势,只有并行的代码多了,才能充分发挥作用。我通过一个婉转的方法回避了锋芒,后面还是需要去多看看。
 继续问,操作系统学过没有Linux或者window,能不能说一下,我只能摇摇头,不是很熟,Java做上层的多一些,下层了解不是很多,他也说Java也是要跟C++交互的,底层实现还是C++嘛,我说恩呢,会用到一些本地方法,调用一些硬件资源,以前学的基础是C,只是现在用的少,大多C++问题,我看能用Java的技术说我就说,不懂的我就直接跟面试官说了。
 然后针对算法,让我说了下快排原理,然后去黑板上画了下,然后写程序,因为作者之前对算法有过复习,面试多了,大概就知道最基本的一些东西一定要熟记的,否则,就算给你机会你也抓不住,程序员面试还是很难混过去的。
 聊天项目问了下,socket底层协议去了解么,怎么使用的,服务器怎么写,对协议了解多少TCP/IP我说主要是用,socket将协议简化到内部了,我大多是使用,看的不多,有能力还是要多爱看看,网络安全也都是这些协议啊,还有三次握手,四次挥手,除了聊天,还实现了什么功能,下载文件是采用什么协议传输的,跟聊天是一样的么,在传输过程中,是一个socket么,挺杂的,有点忘了,南瑞面试官提了一个问题,可以跟大家分享下,如果要你用一个socket传输文件的同时还要顾及聊天,怎么实现?很有意思,当时我没答上来,我大概说了下思路,我说没看过,如果是我,我就把聊天跟传文件设定优先级,因为聊天内容小,出现聊天了,就优先发送。好像不是很对,可以继续看看,但是一定要说,面试官看的是你的思路。
 二面两个面试官,也是自我介绍,然后谈自己觉得又能体现自己能力的项目,依旧谈的那个,面试官问的很细,还有我在做的APP后台,推广的电商,基本你有多少能力都能给你问出来,面试官觉得我就是数据库的建表跟逻辑代码,被他说得很容易啊,在APP后台项目上,我提到了分布式,难点在于数据库的建设,考虑很多分库分表,数据库的建立不应该完全采取三范式,是应该允许数据适当重复,有些需要重复出现的字段,不要进行无畏的多表查询,可以牺牲内存换取速度。

原创粉丝点击