[計算機校招筆試+面試這可能不只是一篇面經]干貨滿滿


實力包含哪些方面

(我也只是腦子里過了一遍,肯定有遺漏的,大家自己補全就行了,畢竟每個人的知識覆蓋范圍也不同)

基礎知識:

算法和數據結構

數組、鏈表、二叉樹、隊列、棧的各種操作(性能,場景)

二分查找和各種變種的二分查找

各類排序算法以及復雜度分析(快排、歸並、堆)

各類算法題(手寫)

理解並可以分析時間和空間復雜度。

動態規划(筆試回回有。。)、貪心。

紅黑樹、AVL樹、Hash樹、Tire樹、B樹、B+樹。

圖算法(比較少,也就兩個最短路徑算法理解吧)

計算機網絡

OSI7層模型(TCP4層)

每層的協議

url到頁面的過程

HTTP

http/https 1.0、1.1、2.0

get/post 以及冪等性

http 協議頭相關

網絡攻擊(CSRF、XSS)

TCP/IP

三次握手、四次揮手

擁塞控制(過程、閾值)

流量控制與滑動窗口

TCP與UDP比較

子網划分(一般只有筆試有)

DDos攻擊

(B)IO/NIO/AIO

三者原理,各個語言是怎么實現的

Netty

Linux內核select poll epoll

數據庫(最多的還是mysql,Nosql有redis)

索引(包括分類及優化方式,失效條件,底層結構)

sql語法(join,union,子查詢,having,group by)

引擎對比(InnoDB,MyISAM)

數據庫的鎖(行鎖,表鎖,頁級鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖,以及加鎖的select sql方式)

隔離級別,依次解決的問題(臟讀、不可重復讀、幻讀)

事務的ACID

B樹、B+樹

優化(explain,慢查詢,show profile)

數據庫的范式。

分庫分表,主從復制,讀寫分離。

Nosql相關(redis和memcached區別之類的,如果你熟悉redis,redis還有一堆要問的)

操作系統:

進程通信IPC(幾種方式),與線程區別

OS的幾種策略(頁面置換,進程調度等,每個里面有幾種算法)

互斥與死鎖相關的

linux常用命令(問的時候都會給具體某一個場景)

Linux內核相關(select、poll、epoll)

編程語言(這里只說Java)

把我之后的面經過一遍,Java感覺覆蓋的就差不多了,不過下面還是分個類。

Java基礎(面向對象、四個特性、重載重寫、static和final等等很多東西)

集合(HashMap、ConcurrentHashMap、各種List,最好結合源碼看)

並發和多線程(線程池、SYNC和Lock鎖機制、線程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理等等)

JVM(內存模型、GC垃圾回收,包括分代,GC算法,收集器、類加載和雙親委派、JVM調優,內存泄漏和內存溢出)

IO/NIO相關

反射和代理、異常、Java8相關、序列化

設計模式(常用的,jdk中有的)

Web相關(servlet、cookie/session、Spring<AOP、IOC、MVC、事務、動態代理>、Mybatis、Tomcat、Hibernate等)

看jdk源碼

項目經歷

這個每個人的項目不同,覆蓋的技術也不一樣,所以不能統一去說。

這里的技巧呢,在下面也會詳細說明。

無非是找到自己項目中的亮點,簡歷上敘述的簡練並且吸引眼球,同時自己要很熟悉這個點(畢竟可以提前准備)

最好自己多練,就像有個劇本或者稿子一樣,保證面試中可以很熟練通俗地講出,並且讓人聽着很舒服。

實習經歷

這個很抱歉,因為我是找實習的經歷,所以也沒有實習經歷的講述經驗。

但我想如果你有實習經歷,那面試過程的重點也會在實習做了什么上面,所以大家最好對實習所做的工作做一個總結,並且同樣抓出亮點,搞懂內部原理,提前鍛煉講述的過程。

其他擴展技能(這個方方面面太多了,全部掌握基本上不可能,只是作為大家其他時間擴充技能的參考)

分布式架構:(了解原理就行,如果真的有實踐經驗更好)

CAP原理和BASE理論。

Nosql與KV存儲(redis,hbase,mongodb,memcached等)

服務化理論(包括服務發現、治理等,zookeeper、etcd、springcloud微服務、)

負載均衡(原理、cdn、一致性hash)

RPC框架(包括整體的一些框架理論,通信的netty,序列化協議thrift,protobuff等)

消息隊列(原理、kafka,activeMQ,rocketMQ)

分布式存儲系統(GFS、HDFS、fastDFS)、存儲模型(skipList、LSM等)

分布式事務、分布式鎖等

腳本語言:(只是作為橫向擴充,一般問到linux也會問問shell腳本)腳本語言和編譯語言的區別

python

php

shell

golang

...

大數據與數據分析

hadoop生態圈(hive、hbase、hdfs、zookeeper、storm、kafka)

spark體系

語言:python、R、scala

搜索引擎與技術

機器學習算法:

模型和算法很多。不細說了,如果很熟練就去投算法,國內很多公司都算法崗都很稀缺,其他崗可以大概了解下理論。

其他工具的理論和使用:

這個更多了,問的多的比如git、docker、maven/gradle、Jenkins等等,自己需要的話選擇性地去學。

https://www.jianshu.com/p/9b46f1dc1ce9


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM