摘要:也可以用于訪問類的靜態(tài)屬性靜態(tài)方法和常量,指向的是實(shí)際調(diào)用時(shí)的類。當(dāng)進(jìn)行非靜態(tài)方法調(diào)用時(shí),該類名指向的類名為該對(duì)象所屬的類,即實(shí)際調(diào)用時(shí)的對(duì)象所屬的類。
網(wǎng)絡(luò)協(xié)議
計(jì)算機(jī)網(wǎng)絡(luò)的五層協(xié)議:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、運(yùn)輸層、應(yīng)用層
計(jì)算機(jī)網(wǎng)絡(luò)的七層協(xié)議(OSI):物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層
TCP/IP(是一個(gè)協(xié)議族,非單個(gè)協(xié)議):網(wǎng)絡(luò)接口層、 IP層、傳輸層、應(yīng)用層
??????網(wǎng)線與集線器屬于物理層 ??????網(wǎng)卡與交換機(jī)屬于數(shù)據(jù)鏈路層 ??????路由器屬于網(wǎng)絡(luò)層TCP和UDP
tcp面向連接的字節(jié)流服務(wù),對(duì)系統(tǒng)資源要求較多,程序結(jié)構(gòu)復(fù)雜,保證數(shù)據(jù)的正確性和順序性
udp是無連接的,面向數(shù)據(jù)報(bào),對(duì)系統(tǒng)資源要求較少,程序結(jié)構(gòu)簡單,不能保證數(shù)據(jù)的正確性和順序性
網(wǎng)站安全與防護(hù)
sql注入防治方法:使用例如PDO的預(yù)處理,使用或者編寫類似mysqli_real_escape_string的方法對(duì)sql的特殊字符進(jìn)行轉(zhuǎn)義
xss(cross site script)跨站腳本攻擊:將外部腳本植入到頁面中
??????防治方法:htmlspecialchars()轉(zhuǎn)義特殊字符為字符實(shí)體,strip_tags()過濾html標(biāo)簽, addslashes(可轉(zhuǎn)義單雙引號(hào)反斜杠NULL) 在特殊字符前面加反斜杠進(jìn)行轉(zhuǎn)義csrf(cross-site request forgery)跨站請(qǐng)求偽造:偽造受信任的用戶信息來請(qǐng)求網(wǎng)站
??????防治方法:請(qǐng)求附加隨機(jī)token進(jìn)行校驗(yàn),或驗(yàn)證碼基礎(chǔ)算法相關(guān)
基本排序算法:
冒泡排序(時(shí)間復(fù)雜度:o(n方))
for($i = 0; $i < count($arr); $i++) for($j = 0; $j < count($arr) - 1 - $i; $j++) if($arr[$j] < $arr[$j+1]) 兩者交換
選擇排序(時(shí)間復(fù)雜度:o(n方))
for($i = 0; $i < count($arr) - 1, $i++) $min = $i; for($j = $i + 1; $j < count($arr); $j++) if($arr[$min] > $arr[$j]) $min = $j; 將最小值與當(dāng)前的第i位置內(nèi)容交換
快速排序思想:通過一趟排序?qū)⑿蛄蟹殖蓛刹糠郑徊糠炙袛?shù)據(jù)比另一部分所有數(shù)據(jù)小,然后在這兩個(gè)序列的內(nèi)部再分別進(jìn)行快速排序操作,直到最后形成一個(gè)有序序列
二分插入排序思想(之前的序列為有序):插入第i個(gè)元素時(shí),對(duì)前面的0~i-1進(jìn)行折半,當(dāng)前元素與中間元素比較,如果小,前半部分再次折半,如果大,后半部分進(jìn)行折半,直到最后left>right,然后把目標(biāo)位置到i-1的所有元素整體后移,把當(dāng)前元素放進(jìn)去
基本查找算法:
順序查找
二分法查找(折半查找):將序列分為兩部分,找到序列的中間值,如果查找值大于中間值,繼續(xù)對(duì)右半部分進(jìn)行折半,如果查找值小于中間值,對(duì)左半部分進(jìn)行折半,直到找到或front>end結(jié)束,時(shí)間復(fù)雜度O(log2n)以2為底n的對(duì)數(shù)
設(shè)計(jì)模式
MVC是一種設(shè)計(jì)框架,而不是設(shè)計(jì)模式,框架是比模式更高的概念 model負(fù)責(zé)數(shù)據(jù)邏輯 controller負(fù)責(zé)用戶交互 view負(fù)責(zé)數(shù)據(jù)顯示 流程:用戶對(duì)控制器的某個(gè)方法發(fā)出請(qǐng)求,控制器調(diào)用相應(yīng)的模型返回?cái)?shù)據(jù),然后將數(shù)據(jù)渲染到視圖中返回給用戶
1) 單例模式 i. 私有化構(gòu)造方法和__clone方法 ii. 提供公有的靜態(tài)的方法返回實(shí)例 iii. 提供私有的靜態(tài)屬性保存實(shí)例
2) 簡單工廠模式(重點(diǎn)在創(chuàng)建不同對(duì)象,作用就是用來創(chuàng)建對(duì)象的) - 例如一個(gè)計(jì)算器的加減乘除求余取整 i. 定義抽象基類讓子類分別繼承并實(shí)現(xiàn)相應(yīng)方法 ii. 定義Factory工廠類里面提供靜態(tài)方法用于根據(jù)不同的參數(shù)實(shí)例化相應(yīng)的子類對(duì)象
3) 策略模式(重點(diǎn)在于實(shí)例化不同類的解決策略不同,作用是根據(jù)不同的情況調(diào)用相應(yīng)的策略或算法) - 例如qq普通用戶 vip svip購買皮膚的優(yōu)惠策略 i. 定義抽象基類讓子類分別繼承并實(shí)現(xiàn)相應(yīng)的方法 ii. 根據(jù)不同的場(chǎng)景實(shí)例化相應(yīng)的類,然后調(diào)用其中的方法獲取結(jié)果
4) 觀察者模式 i. 需要有一個(gè)抽象的主題接口和一個(gè)抽象的觀察者接口 ii. 實(shí)現(xiàn)一個(gè)主題,實(shí)現(xiàn)多個(gè)觀察者 iii. 實(shí)例化主題,然后調(diào)用主題的方法并將不同的觀察者對(duì)象實(shí)例化傳入,在主題的方法中保存?zhèn)魅氲挠^察者對(duì)象到一個(gè)屬性,在主題中定義另外的方法通過保存觀察者對(duì)象調(diào)用觀察者的方法
名詞解釋
ORM模型:將表映射到類,將行記錄映射到實(shí)例對(duì)象,將字段映射到對(duì)象的屬性
OOP:面向?qū)ο缶幊?/b>
nosql:redis、MongoDB、memcached
大流量高并發(fā)網(wǎng)站解決思路
防盜鏈(別人網(wǎng)站上鏈接著你的服務(wù)器上的的資源),驗(yàn)證來源:$_SERVER["HTTP_REFERER"] apache或者nginx進(jìn)行相關(guān)配置
CDN加速
減少http請(qǐng)求,添加異步請(qǐng)求
啟用瀏覽器緩存
代碼壓縮(去除空白符)
頁面靜態(tài)化:信息變更不是很頻繁的頁面進(jìn)行靜態(tài)化處理,生成html文件
數(shù)據(jù)緩存(數(shù)據(jù)庫緩存redis,文件緩存)
使用Nginx,負(fù)載均衡
mysql數(shù)據(jù)庫優(yōu)化
字段數(shù)據(jù)類型優(yōu)化
索引優(yōu)化
SQL語句優(yōu)化
存儲(chǔ)引擎優(yōu)化
表結(jié)構(gòu)設(shè)計(jì)優(yōu)化
分表分庫分區(qū)
主從復(fù)制,讀寫分離
COOKIE 和 SESSION
session與cookie都是會(huì)話技術(shù),默認(rèn)情況下session在客戶端依賴于cookie
cookie保存在客戶端,保存的是字符串,session保存在服務(wù)端,保存的是對(duì)象
cookie安全性低,可被攔截或從本地分析得到,session安全性高
session保存在服務(wù)器上,會(huì)占用服務(wù)器的資源,理論上大小沒有限制,和服務(wù)器內(nèi)存有關(guān)
單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多20個(gè)cookie
登錄信息等重要信息存放為session,其他信息如需保留,可以存在cookie中
include 和 require
引入文件,include在用到時(shí)加載,require在一開始就加載
include引入文件出現(xiàn)錯(cuò)誤,會(huì)給出警告,并繼續(xù)執(zhí)行下面代碼,require引入文件出現(xiàn)錯(cuò)誤,報(bào)出致命錯(cuò)誤并終止當(dāng)前程序運(yùn)行
MyISAM 和 InnoDB
MyISAM不支持事務(wù)和外鍵操作,InnoDB支持事務(wù)處理和外鍵
MyISAM是表級(jí)鎖,InnoDB是行級(jí)鎖
執(zhí)行大量的select MyISAM更好,執(zhí)行大量的insert update用InnoDB更好
global 和 $GLOBALS
$GLOBALS["var"] 是外部的全局變量$var本身。
global $var 是外部$var的同名引用或者指針
empty 和 isset
empty以下條件會(huì)被認(rèn)為空
"" (空字符串)
0 (作為整數(shù)的0)
0.0 (作為浮點(diǎn)數(shù)的0)
"0" (作為字符串的0)
NULL
FALSE
array() (一個(gè)空數(shù)組)
$var; (一個(gè)聲明了,但是沒有值的變量)
isset以下條件會(huì)被認(rèn)為存在
變量存在并且值不是 NULL,則返回 TRUE
get 和 post
get主要用于獲取數(shù)據(jù),post主要用于提交數(shù)據(jù)
get提交參數(shù)追加在url后面,post通過http body提交
get的url會(huì)有長度上的限制,post傳遞數(shù)據(jù)理論上是無限
get提交信息明文顯示在url上,不夠安全,post相對(duì)來說比較安全
get提交可以被瀏覽器緩存,post不會(huì)被瀏覽器緩存
static 和 self
self 可以用于訪問類的靜態(tài)屬性、靜態(tài)方法和常量,但 self 指向的是當(dāng)前定義所在的類,這是 self 的限制。
static 也可以用于訪問類的靜態(tài)屬性、靜態(tài)方法和常量,static 指向的是實(shí)際調(diào)用時(shí)的類。
當(dāng)進(jìn)行非靜態(tài)方法調(diào)用時(shí),該類名(static指向的類名)為該對(duì)象所屬的類,即實(shí)際調(diào)用時(shí)的對(duì)象所屬的類。
一次完整的HTTP請(qǐng)求過程1.首先域名解析(DNS解析):瀏覽器解析域名(主機(jī)名)為相應(yīng)的IP地址 2.建立TCP連接:三次握手
客戶端:你能聽到我說話嗎? 服務(wù)器:我能聽到,你能聽到我說話嗎? 客戶端:我也能,那我開始發(fā)送數(shù)據(jù)嘍。。3.瀏覽器向服務(wù)器發(fā)起http請(qǐng)求 4.服務(wù)器響應(yīng)http請(qǐng)求,返回html代碼 5.瀏覽器解析html代碼并請(qǐng)求html中的資源 6.瀏覽器對(duì)頁面進(jìn)行渲染然后展示給用戶 7.關(guān)閉TCP連接:四次揮手
- 客戶端:“兄弟,我這邊沒數(shù)據(jù)要傳了,咱關(guān)閉連接吧。” - 服務(wù)端:“收到,我看看我這邊有木有數(shù)據(jù)了。” - 服務(wù)端:“兄弟,我這邊也沒數(shù)據(jù)要傳你了,咱可以關(guān)閉連接了。” - 客戶端:“好嘞。”
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/29719.html
摘要:需求一個(gè)輸入框,用戶輸入時(shí)有聯(lián)想搜索,每次用戶輸入都會(huì)觸發(fā)請(qǐng)求,過多的請(qǐng)求會(huì)造成服務(wù)器的壓力,如何去解決這個(gè)問題請(qǐng)求函數(shù)面試者延遲發(fā)送可以去解決這樣的問題。 寫在前面的話 一般來說,面試質(zhì)量的高低很大程度影響公司是否想接受改人才,也影響了人才是否愿意去公司。質(zhì)量高的面試,公司能表明對(duì)人才的要求,個(gè)人也能表明所期待的公司是一個(gè)什么模式的公司。最終會(huì)有利于雙向選擇的過程。能盡早的把問題暴露...
摘要:好不容易在月號(hào)這天中午點(diǎn)左右接到了來自阿里的面試電話。這里會(huì)不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過程多線程機(jī)制機(jī)制系統(tǒng)啟動(dòng)過程,啟動(dòng)過程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發(fā)面試題總結(jié) 各大公司 Jav...
摘要:事后看來,我認(rèn)為它在我順利通過微軟的面試中發(fā)揮了重要作用。在過去幾年中,技術(shù)公司正在轉(zhuǎn)向使用在線協(xié)作編碼平臺(tái)進(jìn)行遠(yuǎn)程面試。同樣重要的是確保在整個(gè)面試過程中與面試官保持有效的溝通。 如果你是一個(gè)剛畢業(yè)的學(xué)生業(yè)生或一個(gè)職業(yè)生涯中期的工程師,那么準(zhǔn)備接受你夢(mèng)寐以求的工作的技術(shù)面試可能既費(fèi)時(shí)又令人緊張。想象一下,人們期望你能夠在現(xiàn)場(chǎng)解決一個(gè)復(fù)雜的挑戰(zhàn),并將其轉(zhuǎn)化為無錯(cuò)誤的代碼? 好了,不用擔(dān)心...
摘要:事后看來,我認(rèn)為它在我順利通過微軟的面試中發(fā)揮了重要作用。在過去幾年中,技術(shù)公司正在轉(zhuǎn)向使用在線協(xié)作編碼平臺(tái)進(jìn)行遠(yuǎn)程面試。同樣重要的是確保在整個(gè)面試過程中與面試官保持有效的溝通。 如果你是一個(gè)剛畢業(yè)的學(xué)生業(yè)生或一個(gè)職業(yè)生涯中期的工程師,那么準(zhǔn)備接受你夢(mèng)寐以求的工作的技術(shù)面試可能既費(fèi)時(shí)又令人緊張。想象一下,人們期望你能夠在現(xiàn)場(chǎng)解決一個(gè)復(fù)雜的挑戰(zhàn),并將其轉(zhuǎn)化為無錯(cuò)誤的代碼? 好了,不用擔(dān)心...
摘要:事后看來,我認(rèn)為它在我順利通過微軟的面試中發(fā)揮了重要作用。在過去幾年中,技術(shù)公司正在轉(zhuǎn)向使用在線協(xié)作編碼平臺(tái)進(jìn)行遠(yuǎn)程面試。同樣重要的是確保在整個(gè)面試過程中與面試官保持有效的溝通。 如果你是一個(gè)剛畢業(yè)的學(xué)生業(yè)生或一個(gè)職業(yè)生涯中期的工程師,那么準(zhǔn)備接受你夢(mèng)寐以求的工作的技術(shù)面試可能既費(fèi)時(shí)又令人緊張。想象一下,人們期望你能夠在現(xiàn)場(chǎng)解決一個(gè)復(fù)雜的挑戰(zhàn),并將其轉(zhuǎn)化為無錯(cuò)誤的代碼? 好了,不用擔(dān)心...
閱讀 1937·2021-11-24 09:39
閱讀 3522·2021-09-28 09:36
閱讀 3291·2021-09-06 15:10
閱讀 3446·2019-08-30 15:44
閱讀 1159·2019-08-30 15:43
閱讀 1802·2019-08-30 14:20
閱讀 2719·2019-08-30 12:51
閱讀 2038·2019-08-30 11:04