首頁  >  文章  >  後端開發  >  範師兄的面經

範師兄的面經

WBOY
WBOY原創
2016-08-10 08:48:35961瀏覽
新浪php splautoloadfile_get_contents判斷兩個陣列$a、$blintp 和Smarty的區別. ..京東筆試大題:輸入整數n,求=49;
二元樹前序遍歷的非遞歸實現(本文的總結)求第n個數,這個序列滿足(2^i)*(3^j)*(5^k),前7個為:2,3,4,5,6,8,10...
  • 整體不是特別難,除了第三道附加演算法題時間來不及做,其他兩道和選擇題自我感覺還不錯
  • 一面:
    PHP有多線程(沒有,但可以透過其他方式實現),怎樣理解PHP
    對於靜態頁文件,是放在ngnix端,還是Server端處理靜態頁面性能比apache要快三倍以上,所以直接放在ngnix)php寫接口,通信方式,socket、http通信實現
  • 兩台計算機如何通信,瀏覽器輸入url後,一直到頁面呈現,中間伺服器都經過了哪些流程
  • 用php做客戶端介面應注意什麼問題(資料加密、json傳輸等)
  • json格式資料有哪些特點(並不能保證安全,對於所有語言都是統一的key- value處理規範)
  • 驗證碼安全,google破解其他站點
  • md5怎麼逆置,其他加密方式的加密、逆置原理
  • 驗證碼的原理。驗證碼的實作原理,如果驗證碼是儲存在伺服器session,那如果正在輸入的時候,伺服器與客戶端斷開連接,又連上去(session已經失效),提交後怎樣判斷驗證碼正確性(在客戶端js中構造和伺服器端相同的sessionid,提交時與伺服器端sessionid匹配)
  • 資料庫主鍵怎麼理解,它是索引麼
  • 建立資料庫應該注意哪些(表冗餘、主鍵、外鍵、索引、字段……)
  • 資料庫事務是什麼
  • 如果正在下單狀態,將用戶銀行卡狀態修改為正在使用狀態1,下一步付款、修改訂單狀態時,突然斷網怎麼辦(面試官期待答案:不是馬上回滾,而是在這個地方嘗試重試幾次,若還不成功就rollback)
  • 請求量比較大時應從哪方面優化提高性能(緩存、頁面靜態化、sql優化、表結構、水平分割、垂直分割)
  • Linux常用指令(文件操作指令、vim指令、系統指令)
  • Javascript和jquery的區別
  • 學校活動、個人性格、工作地域調整、薪資等...
  • 學校活動、個人性格、工作地域調整、薪資等...
  • 🎜🎜🎜🎜🎜 🎜騰訊後台開發面🎜🎜🎜🎜2.core文件是什麼,有什麼用? 🎜🎜答:程式崩潰以後,會把最後的堆疊資訊存在core檔案裡,方便程式設計師了解程式崩潰前最後的堆疊資訊。 🎜🎜追問:如果程式core了,但沒產生core問價,是什麼原因? 🎜

    答:沒有打開core檔案產生的開關。 ulimit -c unlimit

    追問:不用core文件,程式出了問題產生訊號是否知道?

    答:當時蒙了,現在回想起來,就是核心向進程發出訊號嘛。沒答出來。

    3.共享內存,不使用同步方式,是否可以安全讀寫?

    答:這題答偏了,不知怎麼扯到fork上去了。這題應該是不行,共享記憶體屬於臨界區,應該要同步,否則兩個行程同時操作一個記憶體區就出問題了。可以使用讀寫鎖來同步。

    4.fork後,子進程保留了父進程的什麼?

    答:子程序的記憶體區是父進程的副本,堆疊等都會繼承過來,還有開啟的檔案描述子等。其實還有很多,像是實際用戶ID,有效用戶ID,目前工作目錄,儲存映射等等。

    5.共享記憶體除了檔案映射還有什麼方式?

    答:共享記憶體物件映射。

    追問:二者有什麼差別?

    答:不知道。

    6.tcp怎麼實現流量控制?

    答:對端告知視窗大小。本端傳遞的資料量小於視窗大小。 (更好的說法是告訴對端本地的視窗的大小,對端傳遞的資料量必須小於該視窗)

    追問:怎麼告知視窗大小?

    答:在ACK的報文裡。

    7.程式設計題(沒搞出來,誒~)

    問:一個超長字串表示的十進制數(大於2^32),轉換為十六進位的字串?

    趕集網面試總結

    面試管道:朋友@蔚然內推技術實習職位面試時間:8月14日下午13:30
    2對1   (技術leader與前端負責人)過程敘述:
         問的問題很廣,php方面、演算法資料結構、設計模式、前端、資料庫、Linux等。      內容大概有:
  • 當字串為null時,isset和empty的區別
  • ==和===的區別
  • PHP魔術方法有哪些,作用是什麼
  • 用過哪些數組函數,array_merge、in_array的作用
  • 用過哪些數組函數,array_merge、in_array的作用
  • 用過哪些數組函數,array_merge、in_array的作用
  • 用過哪些數組函數,array_merge、in_array的作用
  • 用過哪些數組函數,array_merge、in_array的作用
  • 用過哪些數組函數,array_merge、in_array的作用
  • 常見的排序演算法和查找演算法有哪些,資料結構的樹、鍊錶、堆、棧,是自己實現過還是只看過
  • 說一下快速排序的最好和最壞時間複雜度(nlogn   n的平方)
  • 簡述快速排序的原理 面試前最好先熟悉一下常用演算法和資料結構,另外不可忽略了時間複雜度
  • 二分查找的原理和時間複雜度(logn)時間複雜度第一次回答錯了
  • 你熟悉的設計模式有哪些,手寫一個設計模式(當時我寫的是單例)
  • 資料庫中的索引有哪些,資料庫引擎區別(MyIsam和InnoDB)
  • 敘述聯合索引,和主鍵的區別(把主鍵和索引搞混了,囧..)
  • 資料庫表最佳化方法,建表的注意事項和原則,常見資料庫欄位類型
  • sql注入有哪些,如何有效防止
  • 用過哪些快取技術,thinkphp的緩存是局部緩存還是完全緩存 
  • Cookie和Session區別
  • 禁用Cookie後,Session還可以用嗎,有什麼解決方案
  • 常用Linux命令(我當時從文件操作和vim兩方面回答) 是否了解ngnix,和apache作用相同
    常見apache配置是否熟悉,apache中的rewrite作用php開發過程中用過哪些編譯器(eclipse、phpstrom、zend,一般的sublimeText)對前端的html 、css、js是否熟悉,用過哪些前端框架

         第一面結束後問了有什麼問題,我問了公司開發過程中使用的技術架構(lnmp)。然後然我等一下,當時心情比較放鬆,因為感覺除了資料庫方面回答不太流 利,其他都還可以。在會議室正納悶接下來會發生什麼,一會兒來了一個氣場十足的大牛。接下來的面試有點緊張...第二面:🎜🎜面試方式:1對1🎜🎜過程敘述:🎜🎜     問的問題很深,感覺平時做項目太偏應用,底層的項目太深,感覺平時做項目太偏應用,底層的項目知識比較欠缺🎜🎜     內容大概有:🎜
  • 解釋了一下為什麼大學是五年制(囧,每次回答這個問題都要從很古老的一段傷心往事說起)
  • 平時學習的渠道(我說剛開始基礎是從書上學習,後面都是專案驅動,然後人直接說了專案驅動的弊端...)
  • 索引的最左前綴原則(有點熟悉,好像在哪裡看到過,但是真想不起來了)
  • 為什麼要用ThinkPHP,和直接寫php比有哪些優缺點
  • 是否閱讀過tp源碼
  • 既然學習thinkphp,解釋一下tp中的hook機制吧(只在新版本更新時候看過,不太熟悉啊,緊張.. .)
  • 什麼是reset ful (呃...這是什麼,真心不知道)
  • 解釋一下php中的fastcgi,那cgi是什麼,cgi和fastcgi的區別(不太熟悉,唉,硬著頭皮上吧)
  • 剛才第一面問過你設計模式了,什麼是共享模式(暈啊,設計模式那麼多,好緊張,想不起來了)
  • 解釋一下PHP的namespace
  • 你平時開發用的php版本是什麼(頓時好輕鬆,5.5啊)
  • 你之前做過產品經理,你是怎樣理解產品和技術的,你想做技術還是產品(啊,這個好,論述題,看我的)
  • 平常工作強度比較高可以承受嗎 (當然,我們這有正常週末的)
  •      聊了一些比較輕鬆的話題,後面才知道這一面是故意這麼難的,考驗技術深入的程度,真是慚愧,頓時覺得會的東西好少,確實最近複習方式和時間安排都有點亂,還有一些其他的事情讓人整個狀態比較浮躁,也比較緊張,不再狀態,回去好好惡補一下。最後大概說了一下實習薪資是XXXX比較少,我說不介意,然後說 如果我這邊都ok的話,回去等hr電話。
         面試過程總共將近兩個小時,結束後又和朋友聊了一會兒。大概是下午4點多回到家的,沒想到趕集很有效率,我還在思考下午面試的怎樣,剛到家沒一會兒hr妹紙就打電話過來了,一個比較好聽的聲音說面試通過,問了什麼時候入職。其實我沒打算工作,還想面試完再去其他地方轉轉,成長一下面試技巧。先答應 著吧,人說下週一和週三什麼時候可以入職,我說週三,再容我休息幾天嘛。接下來回覆offer,心情比較糾結,到底去不去,想想現在也沒什麼事,就先實習 著再繼續準備校招吧。準備入職資料。
    百度

    筆試題型


    網路上流傳。 考察面主要包括:
    1. 基本要求
    語言(主要是C/C++)、計組原理、作業系統原理、電腦網路。如指標運算、位元組對齊、函數呼叫堆疊幀結構、記憶體管理、進程調度、網路協定七層模型等。通常以問答題形式出現。
    2. 資料結構及演算法
    查 找(典型如二分查找)、排序(典型如快排、外排)、樹(典型如2叉樹的前/中/後序遍歷、trie樹)。人品好的話,是題目明確告訴你"請寫出2叉樹中序 遍歷的演算法偽碼並分析複雜度",這種題目還算簡單。不走運的話,題目相對抽象,例如"給定一個存放幾億個整數值的文件,設計一種演算法,在滿足xx空間複雜度或xx時間複雜度的前提下,對這些整數做xx處理",這種題目是比較難對付的。所以,大家要有心理準備。這部分通常是寫演算法偽碼。
    3. 系統設計題
    文字描述一段實際的業務場景,要求設計一個系統,能多快好省地實現xxx功能。
    這種題目比較發散,通常,大部分校招學生對這類設計題都不可能有啥經驗。基本是憑藉自己對系統,尤其是電腦組成原理或作業系統的理解,觸類旁通,自由發揮,做到有理有據,邏輯嚴謹即可。這類題目的考察點通常也不是某個標準答案,而是你分析實際問題的能力。

    如何準備筆試


    雖然筆試的內容通常都是平時積累的知識但也不可忽視"考前突擊"的重要性
    1. c/c++
    推薦教材:c programming language (C語言締造者寫的教材短小精悍甩譚譚浩強叔叔幾十條街)、c++ primer、effective c++
    2. 電腦系統
    不清楚交大的教材是那本,學叔自學時用的教材:
    《深入理解電腦系統》 英文名:Computer.Systems:A Programmer's Perspective
    《現代作業系統》 英文名:Modern Operating Systems
    3. 資料結構及演算法
    當年交大用的教材是清華嚴蔚敏教授的《資料結構》C語言版
    也是找工作前,學叔是用這本書複習的 
    當然,如果有牛人在啃MIT的《算法導論》或Donald E.Knuth著的《電腦程式設計藝術》,那算法這塊知識點應當沒啥大問題了
    4. 臨時抱佛腳的面試題
    前面3條列出的資料,都是需要一定時間來消化的。現在從零開始的話,時間顯然來不及。所以,學叔這裡給一些資料,權當拋磚引玉。
    1)《程式設計之美》微軟技術面試心得 
    該書總結了網路公司常用到的幾十種典型演算法題,絕對值得好好研究,相較之下,程式設計師面試寶典之類的國產快餐,就是一坨翔。 。 。
    2)csdn部落格—結構之法 演算法之道
    google或百度搜尋"結構之法" 第1條搜尋結構點進去就是。該blog的部落客為算法牛人,建議有興趣的同學去圍觀其中的面試演算法題。
    此外,演算法大牛的新浪微博號是研究者July,最近在搞面試演算法題講座,可以去關注。 校招準備阿里筆試:8月25日

    百度筆試:9月27日或10月12日

    騰訊筆試:xxx

    《劍指Offer》

    《程式設計師面試寶典》

    《大話設計模式》

    《程式設計師面試寶典》

    《大話設計模式》

    《程式設計工具》《零基礎學演算法》五章

    《程式設計之美》

    csdn部落格—結構之法演算法之道

    《PHP求職寶典》

    《C與指針》


    《Redis》入門指南本文為部落客原創文章,未經部落客允許不得轉載。 以上就介紹了範師兄的面經,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn