首先申明該心得不主要是爲面試者準備的,由於無論是面試者或是被面試者咱們總能從他人那裏學到一些東西,學東西不分途徑,能給本身漲知識才是目的,我的很反對爲了找到一份工做而只在那段找工做的期間努力學習的心態,作技術須要積累,須要實踐,是一個漫長而寂寞的過程,如若您沒那份耐心,勸君早日回頭是岸,別作技術了,作其餘的行業也能掙錢,也能養家餬口。php
首先說說面試者的心態:做爲一個公司的負責人和合做夥伴,你就要對得起公司給你的那份薪水,畢竟做爲企業仍是付出了不少,因此在尋找下一個合做人的時候就得想着能爲公司找一個合適的人選,也爲本身一塊兒並肩奮鬥過的隊友找一個好的隊友,杜絕坑隊友,因此做爲即將離職的面試者,也應該用一個好的心態去尋找合適的人。面試別人的時候個人關注點主要有如下幾個(這只是我我的最看重的三點吧,其餘人會怎麼看,也許各有己見吧):css
1、計算機網絡
基礎部分html
TCP報頭格式
UDP報頭格式
TCP/UDP區別(不只是宏觀上的,最好能根據各自的機制講解清楚)
HTTP狀態碼(最好結合使用場景,好比在緩存命中時使用哪一個)
HTTP協議(一些報頭字段的做用,如cace-control、keep-alive)
OSI協議、TCP/IP協議以及每層對應的協議。
SESSION機制、cookie機制
TCP三次握手、四次揮手(這個問題真的要回答吐了,不過真的是面試官最喜歡問的,建議天天手擼一遍,並且不僅是每次請求的過程,各類FIN_WAIT、TIME_WAIT狀態也要掌握)。
打開網頁到頁面顯示之間的過程(涵蓋了各個方面,DNS解析過程,Nginx請求轉發、鏈接創建和保持過程、瀏覽器內容渲染過程,考慮的越詳細越好)。
http和https區別,https在請求時額外的過程,https是如何保證數據安全的
IP地址子網劃分
POST和GET區別
DNS解析過程
深刻部分
13. TCP如何保證數據的可靠傳輸的(這個問題能夠引伸出不少子問題,擁塞控制慢開始、擁塞避免、快重傳、滑動窗口協議、中止等待協議、超時重傳機制,最好都能掌握)
14. 地址解析協議ARP
15. 交換機和路由器的區別前端
2、數據庫
基礎部分java
事務四大特性(ACID)
數據庫隔離級別,每一個級別會引起什麼問題,mysql默認是哪一個級別
MYSQL的兩種存儲引擎區別(事務、鎖級別等等),各自的適用場景
數據庫的優化(從sql語句優化和索引兩個部分回答)
索引有B+索引和hash索引,各自的區別
B+索引數據結構,和B樹的區別
索引的分類(主鍵索引、惟一索引),最左前綴原則,哪些狀況索引會失效
彙集索引和非彙集索引區別。
有哪些鎖(樂觀鎖悲觀鎖),select時怎麼加排它鎖
關係型數據庫和非關係型數據庫區別
瞭解nosql
數據庫三範式,根據某個場景設計數據表(能夠經過手繪ER圖)
數據庫的主從複製
使用explain優化sql和索引
long_query怎麼解決
內鏈接、外鏈接、交叉鏈接、笛卡兒積等
深刻mysql
MVCC機制
根據具體場景,說明版本控制機制
死鎖怎麼解決
varchar和char的使用場景。
mysql併發狀況下怎麼解決(經過事務、隔離級別、鎖)
Redislinux
redis數據結構有哪些
redis隊列應用場景
redis和Memcached(支持數據持久化)
分佈式使用場景(儲存session等)
發佈/訂閱使用場景
3、操做系統
內存的頁面置換算法
進程調度算法
進程間通訊方式
進程線程區別
進程之間的通訊
父子進程、孤兒進程
fork進程時的操做,
這個部分我回答的都很差,只能是死記硬背,建議基礎好的同窗多看看操做系統這部分,能大大加分。
4、算法
基礎nginx
劍指OFFER的各個題目是最多見的,即便不是原題也是題目的變體,由於面試不像筆試,通常不會出特別困難的題目,因此劍指OFFER上小而精的題目就很是適合。建議手刷一遍。PHP的同窗能夠參考專欄劍指OFFER
二叉樹相關(層次遍歷、求深度、求兩個節點距離、翻轉二叉樹、前中後序遍歷)
鏈表相關(插入節點、鏈表逆置、使用鏈表進行大數字的加減,雙向鏈表實現隊列、尋找鏈表中的環)
堆(大量數據中尋找最大N個數字幾乎每次都會問,還有堆在插入時進行的調整)
排序(八大排序,各自的時間複雜度、排序算法的穩定性。快排幾乎每次都問)
二分查找(通常會深刻,如尋找數組總和爲K的兩個數字)
兩個棧實現隊列。
圖(深度廣度優先遍歷、單源最短路徑、最小生成樹)
動態規劃問題。web
深刻面試
紅黑樹性質
分治法和動態規劃的區別
計算時間複雜度
二叉樹和哈希表查找的時間複雜度
棧和鏈表是面試算法的時候常常用到的工具,多考慮怎麼用數據結構的性質解決,由於面試不像筆試,對基礎數據結構關注的比較多一些,通常問題也比較簡單。而後取模也是經常使用的工具(好比有一次問怎麼讓100個進程按規定的權重被調用,就能夠用取模的方式)。
面試官通常會先出簡單的問題,而後深刻地問下去,最好是根據他的思路走,由於能聽懂他的提示也是須要考察的能力。
LINUX
硬連接和軟鏈接區別
kill用法,某個進程殺不掉的緣由(進入內核態,忽略kill信號)
linux用過的命令
系統管理命令(如查看內存使用、網絡狀況)
管道的使用 |
grep的使用,必定要掌握,每次都會問在文件中查找
shell腳本
find命令
awk使用
語言部分(PHP)
數組操做函數
字符串操做函數(數組和字符串的函數是最常問的,很是多,必定不要記混了)
指針和引用區別
堆和棧的區別
== ===區別
PHP的垃圾回收機制
zval結構
防sql注入
跨域問題
長連接和長輪詢
面向對象、設計模式
接口和抽象類區別
單繼承
construct的調用順序(子類父類之間)
設計模式(工廠模式、策略模式、單例模式、裝飾模式比較常見)
OOP特性,經過哪些機制實現的
重寫和重載區別
靜態類靜態方法
根據某個需求設計一個類(主要考慮類之間的繼承關係和屬性的權限設置)
項目
項目中遇到的困難(提早想好,而且把實現或者優化方法說清楚)
系統的量級、pv、uv等
應對高併發的解決辦法(分佈式)
在項目中主要負責了哪些工做。
nginx的負載均衡
分佈式緩存的一致性,服務器如何擴容(哈希環)
總之要把寫在簡歷上的項目部分熟悉一遍,技術棧、項目功能、難點都要考慮好。
來源http://blog.csdn.net/acingdreamer/article/details/78479476 (謝謝博主)
另外一個強烈推薦的面試提綱 https://blog.csdn.net/acingdreamer/article/details/78479476
MySQL 數據庫性能優化之緩存參數優 https://www.2cto.com/database/201605/506272.html
MySQL 數據庫性能優化之表結構 https://www.2cto.com/database/201605/506274.html
MySQL 數據庫性能優化之索引優化 https://www.2cto.com/database/201605/506270.html
MySQL 數據庫性能優化之SQL優化 https://www.2cto.com/database/201605/506249.html
MySQL數據庫性能優化之存儲引擎選擇 https://www.2cto.com/database/201605/506253.html
MySQL數據庫性能優化之硬件優化 http://blog.csdn.net/bemavery/article/details/46241533
MySQLB樹 https://www.cnblogs.com/xiaoxi/p/6868087.html
PHP 線程,進程,併發 https://blog.mimvp.com/article/15484.html
PHP併發IO編程之路(深度長文)https://www.imooc.com/article/8449
多線程編程 - PHP 實現 https://cloud.tencent.com/developer/article/1012783
深刻研究PHP及Zend Engine的線程安全模型 http://blog.codinglabs.org/articles/zend-thread-safety.html
php實現多進程、多線程 https://blog.csdn.net/ZHANG_TIMI/article/details/78342722
http://www.csdn.net/article/2014-07-24/2820837 Nginx、LVS及HAProxy負載均衡軟件的優缺點詳解
http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS實現負載均衡原理及安裝配置詳解
Nginx的配置與部署研究,Upstream負載均衡模塊 http://www.linuxidc.com/Linux/2013-04/82526p2.htm
CentOS 6.2實戰部署Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用Nginx搭建WEB服務器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基於Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服務器全過程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3下Nginx性能調優 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3下配置Nginx加載ngx_pagespeed模塊 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4安裝配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx安裝配置使用詳細筆記 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx日誌過濾 使用ngx_log_if不記錄特定日誌 http://www.linuxidc.com/Linux/2014-07/104686.htm
http://www.jb51.net/article/107414.htm (nginx日誌實現訪問異常報警)