程序员必备的面经

                                                 程序员面试宝典

     首先作者在此声明:
       2017应届毕业生秋季招聘会基本结束,伴随着金色9月银色10月的接近尾     声,IT互联网电子通信类名企校招基本宣告结束~~~!!!童鞋,你收到了几个offer呢?没收到的赶快找个差不多合适的公司先签了吧,不要拖到竞争激烈,岗位 奇缺的春招了哦!
       同时再次强调,此面试经验可以保证你命中所有校招面试笔试重点,当然你如果非得说没有命中++i,i++诸如此类题目,我也只好呵呵了童鞋,你不用参加秋季招聘了,因为你真的需要恶补!!!

     言归正传,步入正题……

         心态,心态,注意是心态很重要,重要的事说三遍,你如果看不到重点,请滚         蛋!
         找工作因为面试官和你双向选择,所以是一件看缘分的事情。你牛逼,面试官觉       得你装逼,失败;你牛逼,面试官觉得你可能会看不起公司,失败;你牛逼,公司无     法给你提供你理想的薪水,失败;所以你行不行,看公司面试官觉得你和公司相应职     位的匹配度。不牛逼照样可以得到好工作,牛逼不一定得到理想的offer! 更何况校招     看潜力,看培养价值,之后才是看项目经验。基础好+项目经验足+准备充分=高概       率收割offer,反之则概率低。记得要海投推荐海投网,所有高校宣讲会不会错         过),多投简历,总有欣赏你的面试官,即使你技术差,他看中或许是你的潜              力,谦逊,学习能力,性格……。得失乃家常便饭,博主我自己被互联网公司拒了不    下5次,但每次都是一次可以补强的机会,从面试官嘴里可以了解很多面试内幕,          说话方式,以及他们考察侧重点。最后9月底还是收获了4个 offer。
        再说一遍:
       心态很重要!
        心态很重要!
        心态很重要!
        重要的事只说这三遍了!!!(该吃吃,该喝喝,该学学)
        
        有些博客说《王道》+《数据结构》+《操作系统》== offer收割机
        其实我用的是《剑指offer》+《数据结构》+《操作系统》,同样是offer收割不  二选择。如果你需要这几本书的pdf经典版可以给我留言留下你的邮箱,版权问题不归  我管。
        好的,下面是面试重头戏!!!
        项目经验——现在的面试官更喜欢问你一些项目经验,当然你的简历上得有项目,如果你真的有项目经验,你就会回答流畅,恭喜你,面试官基本不会再问程序题目来考你,因为从交流过程中,面试官已经对你知根知底。倘若你的简历上写的项目经验是抄袭或者假的,你会给面试官留下不好的印象,以为假的真不了,在交流过程中,面试官基本就对你的能力知根知底。就像一个大学生看高中生的行为一样,每一个行为反映了其心理状态。毕竟人家面试应届生这么多年了。死在技术面的人==没有项目经验但非得在简历上弄点假的+基础知识一半回答不上来。项目介绍可以按照STAR模式整理(不知道STAR可以baidu或者google一下,简历介绍必备)。
       好吧,受到你们懒惰心理的召唤,我用star模型给你们走一遍项目介绍,同时注意事项也会毫无保留的奉献给大家。
       拿国家电网工业网关数据分析管理系统的一个项目来展开:
       S:situation 项目场景。国家电网整个电网线路缺乏自动监管系统。平时主要依靠人工来检测,排查,处理;但是很多地方不便于人工排查,检测,比如荒漠,沟壑,山丘,丛林等地。为实现电力系统自动化,智能化,响应工业4.0战略,将人工转向远程,转向智能化监测管理。
       T:  task 任务。主要目的是解决大量人力物力带来的棘手问题,采用物联网技术,利用传感网络,终端服务器实现远程监控
       A:action 行动。收集电网内部资料,与电网内部人员沟通需要解决的问题,了解电网内部管理系统,传感器设备;驱动程序,客户端程序,服务器程序设计编写等。
       R: result 结果。投入实际应用的效果,比如,实时采集系统效率,稳定性,客户端程序界面以及操作友好性等是否达到了要求。
       当然一个项目里面还因为有很多细节可以使用star模型。
       注意事项:自己的职责一一写上,注意区分“负责”,“参与”用词,不会的不要乱写,如果乱写,无异于搬石头砸自己脚。向面试官讲解项目的时候就按照自己做过项目经历详细但不要啰嗦,全面但不要细节地讲述一遍,在心中有个框架。在这期间面试官会因为对你讲述的某个内容感兴趣,比如数据库设计,大数据处理方法,网络socket编程,多线程,服务器端程序。此时正是给你机会的时刻,你可以拓展自己需要讲述的内容,你把socket网络编程过程说一遍,数据库表设计说一遍,如何处理的大数据,为何要用多线程,服务器端程序I/O复用等等,以及服务器端程序为何选择tcp/udp等。说完这些一般后面面试官不会问你了,因为该说的全说了,面试官会对你刮目相看的,其实一般不会问到这个地步的,问到一半就不错了。等到他说:“待会找HR聊聊的时候,哈哈,就是你谈条件,了解公司的时候”。

                     技术面试和综合面试经验

       JAVA SE (当然我不学java,这个是一个学习java的同学给整理的,非常感谢)
          1.九种基本数据类型的大小,以及他们的封装类。
          2. Switch能否用string做参数?
          3. equals ==的区别。
          4. Object 有哪些公用方法?
          5. Java 的四种引用,强弱软虚,用到的场景。
          6. Hashcode 的作用。
          7. ArrayListLinkedListVector的区别。
          8. StringStringBufferStringBuilder的区别。
          9. MapSetListQueueStack的特点与用法。
          10. HashMapHashTable的区别。
          11. HashMap ConcurrentHashMap的区别,HashMap的底层源码。
          12. TreeMapHashMapLindedHashMap的区别。
          13. Collection 包结构,与Collections的区别。
          14. try catch finallytry里有returnfinally还执行么?
          15. Excption Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪                     些 情况。
          16. Java 面向对象的三个特征与含义。
          17. Override Overload的含义去区别。
          18. Interface abstract类的区别。
          19. Static class non static class的区别。
          20. java 多态的实现原理。
          21. 实现多线程的两种方法:ThreadRunable
          22. 线程同步的方法:sychronizedlockreentrantLock等。
          23. 锁的等级:方法锁、对象锁、类锁。
          24. 写出生产者消费者模式。
          25. ThreadLocal 的设计理念与作用。
          26. ThreadPool 用法与优势。
          27. Concurrent 包里的其他东西:ArrayBlockingQueue、                                            CountDownLatch                 等等。
          28. wait()sleep()的区别。
          29. foreach 与正常for循环效率对比。
          30. Java IO NIO
          31. 反射的作用于原理。
          32. 泛型常用特点,List<String>能否转为List<Object>
          33. 解析 XML 的几种方式的原理与特点: DOMSAXPULL
          34. Java C++对比。
          35. Java1.7 1.8新特性 
          36.设计模式:单例、工厂、适配器、责任链、观察者等等。
          37. JNI 的使用。 

     C/C++(全是重点,如果时间紧急可以只看红色)
1. 进程中的内存布局
2. 指针相关(野指针、数组越界)、数组与指针、二位指针
3. 数组与二维数组
4. 动态内存分配(内存泄漏)
5. 预编译与有参宏
6Staticconst
7. 结构体、共用体以及结构体空洞
8. 位运算
9Sizeofstrlen
10.内存对齐
11.函数调用过程
12Inline函数
12. 指针与引用
13Conststaticsizeof
14Classstruct的区别
15. 构造函数与析构函数
16. 继承与多态
17. 空类默认生成哪些成员函数
18. 什么是多态
19. 动态绑定的实现
20. 内存泄漏原因及如何避免
21.多态 概念和实现方式: 编译时多态和运行时多态,说出来就行了
22.STL 容器 map 的底层结构 红黑树 查找复杂度 lgn
23 .
多态中 父类析构函数可以设成虚函数,这是为了防止那种情况发生,可能       造成什么后果:用父类指针new一个子类对象,释放父类对象不会释放子        类对象 有可能造成内存泄露 

操作系统
1.进程和线程的区别。
2.死锁的必要条件,怎么处理死锁。
3.如何预防,避免死锁,说出方法;
4.什么是分布式锁;
3. Window内存管理方式:段存储,页存储,段页存储。
4.进程的几种状态。
5. IPC几种通信方式。
6.什么是虚拟内存。

计算机网络
1. OSITCP/IP各层的结构与功能,都有哪些协议。
2. TCPUDP的区别。
3. TCP报文结构。
4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。
5. TCP拥塞控制以及处理方法。
6. TCP滑动窗口与回退N针协议。
7.postgets的区别
7. Http的报文结构。
8. Http的状态码含义。
9. Http request的几种类型。
10. Http1.1Http1.0的区别
11. Http怎么处理长连接。
12. CookieSession的作用于原理。
13.电脑上访问一个网页,整个过程是怎么样的:DNSHTTPTCP、        OSPFIPARP
14. Ping的整个过程。ICMP报文是什么。
15. C/S模式下使用socket通信,几个关键函数。
16. IP地址分类。
17.路由器与交换机区别。
     网络其实大体分为两块,一个TCP协议,一个HTTP协议,只要把这两      块以及相关协议搞清楚,一般问题不大 

数据结构以及算法基础
           1.链表与数组。
2.队列和栈,出栈与入栈。
3.链表的删除、插入、反向。
4.字符串操作。
5. Hash表的hash函数,冲突解决方法有哪些。
6.各种排序:冒泡、选择、插入、希尔、归并、快排、堆排、桶排、基数的原理、平
均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。
均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。
均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。
7.快排的partition函数与归并的Merge函数。
8.对冒泡与快排的改进。
9.二分查找,与变种二分查找。
10.二叉树、B+树、AVL树、红黑树、哈夫曼树。
11.二叉树的前中后续遍历:递归与非递归写法,层序遍历算法。
12.图的BFSDFS算法,最小生成树prim算法与最短路径Dijkstra算法。
13. KMP算法。
14.排列组合问题。
15.动态规划、贪心算法、分治算法。(一般不会问到)
16.大数据处理:类似10亿条数据找出最大的1000个数.........等等
      ()
            17.判断一个单链表是否有环?
            18.常用排序的时间负责度以及使用场合

  linux(服务器程序离不开linux)
          1. 查看进程的两个操作命令。
          2. 你常用的操作命令有哪些。
          3. Linux 下边是如何进行进程调度的。
          4. Shell 脚本编程
          5. 网络编程
          6. 介绍下 linux 上的权限
           (其实还有很多,但是面试官估计也想不起多少,只看看你是不是用过                     linux)

   数据库
2. 数据库中索引的特点,以及缺点
3. 数据库的事物机制你了解吗,如何保证安全的,如何保证数据安全。
5. 数据库的索引底层采用了什么数据结构,你对红黑树了解吗,和B+树         有何区别。
6. 数据库的隔离级别都有哪些。

综合面常问问题
1.项目中你遇到的最大困难是什么,怎么解决的, 学到了什么。
2. 你认为你有哪些地方的不足。
3. 你平时看些什么书,如何学习的。
4. 你的优点是什么,缺点是什么。
5. 你认为我们凭什么在这么多的面试者里边录取你。
6. 你人生中你觉得那件事最成功,为什么
7. 假如你个是 leader, 你员工背后说你坏话你怎么看
9. 两个字评价大学生涯
10. 加班怎么看
11. 为什么选择选择这个城市
12. 你最大的遗憾是什么
13. 你的职业规划是什么
14. 你平时的爱好是什么

 套路-套路-套路

      (把面试搞得轻松加愉快,你基本就成功了)

综合面中最重要的是要学会自圆其说,不要让面试官抓住你的把柄,然后就是学会调节气氛, 迅速与面试官拉近距离, 有两句话说的好 ~~~ 
1、 会自黑的人, 身边的人大部分都是黑转粉O(_)O ~~好邪恶 !!
2、 如果遇到你感觉到有点被为难了,那你就露出你洁白的
      牙齿,多笑笑,爱笑的人运气不会太差
~~
面试结束,记得与面试官握握手说声谢谢(谢谢您的面试机会,希望有机会并肩作战,要不要或许就是这一瞬间

观察面试官的性格,也就是常说的察言观色。
1,如果面试官比较年轻活泼,就表现自己开朗积极,乐观的一面。可以在         面试中试着活跃气氛,最能插段子的地方是自我介绍和讲述优缺点的时      候。好吧,我为一个段子手,我承认我可以灵活的将段子运用到各个阶        段。
2,如果面试官年纪比较大,记得表现诚恳谨慎,不要跳,不要飞,放慢语        速,想好了再说话。一般这些年长的面试官阅人无数,眼光毒辣,最好        不要想给他们挖坑。。
A,面试官让你写代码的时候不要冷场,这个时候一般你不说话,面试官也        不说话,他会在电脑上给你敲评价。这时候最好不要让他冷静下来作对         你的分析,要陪他说话,最好的就是一边写一边说代码思路,不仅可以       让你消除紧张,还可以缓和气氛。
B,面试官给你出的题目一般都是算法优化,如果你一看简单就按正常思路        直接利用cpu的快速性直接写程序,恭喜你掉坑了。此时最好想想,一边     说传统方法太耗cpu,可以尝试捷径,如果没有捷径,倘若你还依稀记得     好似这个过程可以数学公式表达,你就和面试说可以使用个公式,但是公     式实在记不住了(面试官估计都不知道有没有公式的)。此时,他估计       会给你提示,你可以循着提示走,如果你实在想不到捷径。不要说我实在     不会了,你就装作很紧张的样子,说这种场合我紧张,平时估计可以想        到,和他说带回去自己看看这个题。说到这,面试官不会为难你的,因      为再为难你,其实就是为难他自己(万一你起杀心呢)

   再说一点小秘密!
   再说一点小秘密!
   再说一点小秘密!
  
   1.夸面试官而不是跪舔。当问到男面试官职业发展途径时候,可以让他以       自己作为例子说一下,最后不管他牛逼还是水逼,都要说:哇偶,同时       表情肢体表现出敬佩的样子,这么快就升到XXX职位了,真该向你学习       了,真是年轻有为啊。
   2.遇到女HR夸她长得漂亮,有气质等,屡试不爽哈哈。还有,不要害羞,       盯着女HR的眼睛看,看到他害羞为止,这个时候你可以迷惑她了,等她       害羞的时候就是她开始从理性向感性转遍的时候,这时候她说的话估计       自己都不知道说啥。哎,那次我把那个HR看的脸红的语无伦次。脸红的       女人挺漂亮的哈哈,我喜欢哈哈羡慕

          

                              
       
    
       

猜你喜欢

转载自blog.csdn.net/zsl091125/article/details/52847401