摘要:本書的地址篇收集了一些常見的基礎(chǔ)進階面試題,基礎(chǔ)的面試題不再作答。如何實現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤中,相當于備份數(shù)據(jù)庫狀態(tài)。相當于備份數(shù)據(jù)庫接收到的命令,所有被寫入的命令都是以的協(xié)議格式來保存的。
本書的 GitHub 地址:https://github.com/todayqq/PH...
PHP 篇收集了一些常見的基礎(chǔ)、進階面試題,基礎(chǔ)的面試題不再作答。
基礎(chǔ)篇Get 和 POST 的區(qū)別
Cookie 和 Session 的區(qū)別和關(guān)系
單引號和雙引號的區(qū)別
isset 和 empty 的區(qū)別
echo、print_r、print、var_dump 之間的區(qū)別
什么是 MVC?
傳值和傳引用的區(qū)別?
進階篇簡述 S.O.L.I.D 設(shè)計原則
SRP | 單一職責原則 | 一個類有且只有一個更改的原因 |
OCP | 開閉原則 | 能夠不更改類而擴展類的行為 |
LSP | 里氏替換原則 | 派生類可以替換基類使用 |
ISP | 接口隔離原則 | 使用客戶端特定的細粒度接口 |
DIP | 依賴反轉(zhuǎn)原則 | 依賴抽象而不是具體實現(xiàn) |
PHP7 和 PHP5 的區(qū)別,具體多了哪些新特性?
性能提升了兩倍
增加了結(jié)合比較運算符 (<=>)
增加了標量類型聲明、返回類型聲明
try...catch 增加多條件判斷,更多 Error 錯誤可以進行異常處理
增加了匿名類,現(xiàn)在支持通過new class 來實例化一個匿名類,這可以用來替代一些“用后即焚”的完整類定義
為什么 PHP7 比 PHP5 性能提升了?
變量存儲字節(jié)減小,減少內(nèi)存占用,提升變量操作速度
改善數(shù)組結(jié)構(gòu),數(shù)組元素和 hash 映射表被分配在同一塊內(nèi)存里,降低了內(nèi)存占用、提升了 cpu 緩存命中率
改進了函數(shù)的調(diào)用機制,通過優(yōu)化參數(shù)傳遞的環(huán)節(jié),減少了一些指令,提高執(zhí)行效率
簡述一下 PHP 垃圾回收機制(GC)
PHP 5.3 版本之前都是采用引用計數(shù)的方式管理內(nèi)存,PHP 所有的變量存在一個叫 zval 的變量容器中,當變量被引用的時候,引用計數(shù)會+1,變量引用計數(shù)變?yōu)?時,PHP 將在內(nèi)存中銷毀這個變量。
但是引用計數(shù)中的循環(huán)引用,引用計數(shù)不會消減為 0,就會導致內(nèi)存泄露。
在 5.3 版本之后,做了這些優(yōu)化:
并不是每次引用計數(shù)減少時都進入回收周期,只有根緩沖區(qū)滿額后在開始垃圾回收;
可以解決循環(huán)引用問題;
可以總將內(nèi)存泄露保持在一個閾值以下。
了解更多可以查看 PHP 手冊,垃圾回收機制。
如何解決 PHP 內(nèi)存溢出問題
增大 PHP 腳本的內(nèi)存分配
變量引用之后及時銷毀
將數(shù)據(jù)分批處理
Redis、Memecached 這兩者有什么區(qū)別?
Redis 支持更加豐富的數(shù)據(jù)存儲類型,String、Hash、List、Set 和 Sorted Set。Memcached 僅支持簡單的 key-value 結(jié)構(gòu)。
Memcached key-value存儲比 Redis 采用 hash 結(jié)構(gòu)來做 key-value 存儲的內(nèi)存利用率更高。
Redis 提供了事務的功能,可以保證一系列命令的原子性
Redis 支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中
Redis 只使用單核,而 Memcached 可以使用多核,所以平均每一個核上 Redis 在存儲小數(shù)據(jù)時比 Memcached 性能更高。
Redis 如何實現(xiàn)持久化?
擴展閱讀RDB 持久化,將 Redis 在內(nèi)存中的的狀態(tài)保存到硬盤中,相當于備份數(shù)據(jù)庫狀態(tài)。
AOF 持久化(Append-Only-File),AOF 持久化是通過保存 Redis 服務器鎖執(zhí)行的寫狀態(tài)來記錄數(shù)據(jù)庫的。相當于備份數(shù)據(jù)庫接收到的命令,所有被寫入 AOF 的命令都是以 Redis 的協(xié)議格式來保存的。
3年P(guān)HPer的面試總結(jié)
垃圾回收機制
S.O.L.I.D 面向?qū)ο笤O(shè)計
淺談IOC--說清楚IOC是什么
Redis和Memcached的區(qū)別
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28158.html
摘要:先說一下面試時的心態(tài),剛?cè)腴T的程序員,技術(shù)實力不高,又大多不善言談,面試一旦遇到難題,很容易心態(tài)失衡驚慌失措語無倫次,最終丟掉了。其實大可不必,心態(tài)坦然,是面試必備的一點。 本書的 GitHub 地址:https://github.com/todayqq/PH... 作為一位程序員,面試過多次,也面試過很多人,最近又在找工作,總結(jié)一下面試經(jīng)驗和面試題,希望可以幫到正在找工作的小伙伴們...
摘要:前端篇收集的前端面試題和答案前端開發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊協(xié)議工作原理協(xié)議運行機制的概述協(xié)議篇原理原理解析的工作原理與的區(qū)別理解后端篇年的面試總結(jié)垃圾回收機制面向?qū)ο笤O(shè)計淺談說清楚是什么和的區(qū)別索引原理及慢查 前端篇 收集的前端面試題和答案 前端開發(fā)面試題 史上最全的web前端面試題匯總及答案 前端工程師手冊 HTTP協(xié)議:工作原理 SSL/TLS協(xié)議運行...
摘要:快速排序快速排序是對冒泡排序的一種改進。獲取中間數(shù)兩值相等,返回元素比目標大,查找左部元素比目標小,查找右部查找失敗擴展閱讀冒泡排序?qū)崿F(xiàn)快速排序?qū)崿F(xiàn)各種經(jīng)典算法常見算法面試篇實現(xiàn)二分查找法 本書的 GitHub 地址:https://github.com/todayqq/PH... 算法可以說是大廠的必考題,對于算法,一定要理解其中的精髓、原理。 冒泡排序 冒泡排序的原理:一組數(shù)據(jù),...
摘要:簡述的生命周期采用了單一入口模式,應用的所有請求入口都是文件。分發(fā)請求一旦應用完成引導和所有服務提供者都注冊完成,將會移交給路由進行分發(fā)。此外,由于對動態(tài)方法的獨特用法,也使測試起來非常容易。 本書的 GitHub 地址:https://github.com/todayqq/PH... Laravel 作為現(xiàn)在最流行的 PHP 框架,其中的知識較多,所以單獨拿出來寫一篇。 簡述 La...
摘要:擴展閱讀收集的前端面試題和答案前端開發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊協(xié)議工作原理協(xié)議運行機制的概述 本書的 GitHub 地址:https://github.com/todayqq/PH... 對于大公司,很少會有全棧工程師這個崗位,全棧是個花哨的詞,對于現(xiàn)在比較熱門的技術(shù),不論是 Vue 還是 Laravel,只要智商不差,看著文檔,都能寫出一個 CURD 來,...
閱讀 858·2021-11-24 10:44
閱讀 2794·2021-11-11 16:54
閱讀 3203·2021-10-08 10:21
閱讀 2105·2021-08-25 09:39
閱讀 2915·2019-08-30 15:56
閱讀 3467·2019-08-30 13:46
閱讀 3504·2019-08-23 18:09
閱讀 2096·2019-08-23 17:05