1. 深淺 copy 的區(qū)別
深copy:copy內(nèi)部全部?jī)?nèi)容乖菱,形成一個(gè)新的對(duì)象坡锡,雖然與之前的值和內(nèi)容一樣,但是他們完全是兩個(gè)對(duì)象窒所。
淺copy:copy第一層內(nèi)容鹉勒,不copy內(nèi)部子對(duì)象。
2. python 中的生成器和迭代器
python 生成器和迭代器有這篇就夠了 - 戰(zhàn)爭(zhēng)熱誠(chéng) - 博客園
生成器:在Python中吵取,這種一邊循環(huán)一邊計(jì)算的機(jī)制禽额,稱(chēng)為生成器。python中生成器是迭代器的一種皮官,使用yield返回值函數(shù)脯倒,每次使用yield會(huì)暫停∞嗲猓可以使用next()函數(shù)和send()函數(shù)恢復(fù)藻丢。
迭代器:迭代器包含有next方法的實(shí)現(xiàn),在正確的范圍內(nèi)返回期待的數(shù)據(jù)以及超出范圍后能夠拋出StopIteration的錯(cuò)誤停止迭代摄乒。生成器都是Iterator對(duì)象悠反,但list、dict馍佑、str雖然是 Iterable(可迭代對(duì)象)斋否,卻不是Iterator(迭代器)
a = [x*x for x in range(3)]? 是迭代過(guò)程,a =(x*x for x in range(3))能夠生成生成器拭荤。
3. python 內(nèi)存管理
? Python的內(nèi)存管理機(jī)制:引入計(jì)數(shù)茵臭、垃圾回收、內(nèi)存池機(jī)制
python中萬(wàn)物皆對(duì)象舅世,python的存儲(chǔ)問(wèn)題是對(duì)象的存儲(chǔ)問(wèn)題笼恰,并且對(duì)于每個(gè)對(duì)象,python會(huì)分配一塊內(nèi)存空間去存儲(chǔ)它
1歇终、Python緩存了整數(shù)和短字符串,因此每個(gè)對(duì)象在內(nèi)存中只存有一份逼龟,引用所指對(duì)象就是相同的评凝,即使使用賦值語(yǔ)句,也只是創(chuàng)造新的引用腺律,而不是對(duì)象本身奕短;
2宜肉、Python沒(méi)有緩存長(zhǎng)字符串、列表及其他對(duì)象翎碑,可以由多個(gè)相同的對(duì)象谬返,可以使用賦值語(yǔ)句創(chuàng)建出新的對(duì)象。
?3日杈、python中對(duì)大于256的整數(shù)遣铝,會(huì)重新分配對(duì)象空間地址保存對(duì)象;對(duì)于字符串來(lái)說(shuō)莉擒,如果不包含空格的字符串酿炸,則不會(huì)重新分配對(duì)象空間,對(duì)于包含空格的字符串
引入計(jì)數(shù):在Python中,每個(gè)對(duì)象都有指向該對(duì)象的引用總數(shù)---引用計(jì)數(shù),查看對(duì)象的引用計(jì)數(shù) sys.getrefcount()
? ? ? ? 引用計(jì)數(shù)增加的情況有:對(duì)象被創(chuàng)建(n=123 # 123為對(duì)象)涨冀;利用copy引用創(chuàng)建(m = n)填硕;作為容器 對(duì)象的一個(gè)元素(a = [1,2,123]);作為參數(shù)傳給函數(shù)(fun(n))【出現(xiàn)以上情況對(duì)象引用計(jì)數(shù)加1】
? ? ? ? 引用計(jì)數(shù)減少的情況有:對(duì)象的別名被銷(xiāo)毀(del m); 對(duì)象的一個(gè)別名被復(fù)制給其他對(duì)象(n = 456); 對(duì)象從一個(gè)容器對(duì)象里刪除鹿鳖,或者容器對(duì)象被銷(xiāo)毀(a.remove(123) 或者 del a )扁眯;【出現(xiàn)以上情況對(duì)象引用計(jì)數(shù)減1】
垃圾回收:當(dāng)Python的某個(gè)對(duì)象的引用計(jì)數(shù)降為0時(shí),說(shuō)明沒(méi)有任何引用指向該對(duì)象翅帜,該對(duì)象就成為要被回收的垃圾姻檀。
(1)、垃圾回收時(shí)藕甩,Python不能進(jìn)行其它的任務(wù)施敢,頻繁的垃圾回收將大大降低Python的工作效率;
(2)狭莱、Python只會(huì)在特定條件下僵娃,自動(dòng)啟動(dòng)垃圾回收(垃圾對(duì)象少就沒(méi)必要回收)
(3)、當(dāng)Python運(yùn)行時(shí)腋妙,會(huì)記錄其中分配對(duì)象(object allocation)和取消分配對(duì)象(object deallocation)的次數(shù)默怨。當(dāng)兩者的差值高于某個(gè)閾值時(shí),垃圾回收才會(huì)啟動(dòng)骤素。(閾值為700)
(4)匙睹、當(dāng)然也可以自己手動(dòng)垃圾回收(使用 gc.collect())
內(nèi)存池機(jī)制:(看不懂...就先不總結(jié)了)
Python 中有分為大內(nèi)存和小內(nèi)存:(256K為界限分大小內(nèi)存)
? 1、大內(nèi)存使用malloc進(jìn)行分配
? 2济竹、小內(nèi)存使用內(nèi)存池進(jìn)行分配
? 3痕檬、Python的內(nèi)存池(金字塔)
。送浊。梦谜。
4. http 和 https 區(qū)別
1、http是超文本傳輸協(xié)議,信息是明文傳輸唁桩,https則是具有安全性的ssl加密傳輸協(xié)議闭树。
2、http和https使用的是完全不同的連接方式荒澡,用的端口也不一樣报辱,前者是80,后者是443单山。
3碍现、http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的饥侵;https協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸鸵赫、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全躏升。
5. 數(shù)據(jù)庫(kù)索引的實(shí)現(xiàn)方式和分類(lèi)
數(shù)據(jù)庫(kù)索引分類(lèi) - 一直都是瑾涼 - 博客園
索引分類(lèi)主要有:普通索引辩棒、唯一索引、主鍵索引膨疏,聯(lián)合索引等
1一睁、普通索引的創(chuàng)建:create unique index 索引名 on 表名(列名);(對(duì)某一列創(chuàng)建索引)
2、唯一索引的創(chuàng)建:create unique index 索引名 on 表名(列名); (對(duì)某一列創(chuàng)建唯一索引)
3佃却、主鍵索引的創(chuàng)建:一般創(chuàng)建表格的時(shí)候就順便創(chuàng)建了主鍵者吁。主鍵是一種特殊的唯一索引,不允許有空值饲帅。
4复凳、聯(lián)合索引相當(dāng)于多個(gè)索引一起谬墙,符合最左匹配原則
索引實(shí)現(xiàn)方式主要有:B+樹(shù)灸蟆、散列(HASH)索引夷野、位列索引
B+樹(shù)最常用俺附,適用于范圍查詢(xún)和單值查詢(xún),特別是范圍查詢(xún)只能用B+樹(shù)來(lái)做
散列(HASH)索引只能做單值查詢(xún)雌隅,查詢(xún)速度比B+樹(shù)要快喧锦。
位列索引很局限辈挂,只能用于性別惶洲、等級(jí)之類(lèi)的查詢(xún)按声,思想主要就是01思想。
6. 進(jìn)程恬吕、線(xiàn)程和協(xié)程
進(jìn)程是系統(tǒng)分配資源的基本單位签则,進(jìn)程是線(xiàn)程的容器,線(xiàn)程是進(jìn)程的一部分铐料,每個(gè)進(jìn)程至少有一個(gè)線(xiàn)程怀愧。
進(jìn)程都有自己的內(nèi)存空間侨颈,而線(xiàn)程是利用進(jìn)程的資源和內(nèi)存空間。一個(gè)進(jìn)程結(jié)束那么它的線(xiàn)程也會(huì)跟著結(jié)束芯义。
一個(gè)進(jìn)程可以和其他進(jìn)程并發(fā)運(yùn)行,一個(gè)線(xiàn)程不僅可以和同一個(gè)進(jìn)程里的線(xiàn)程并發(fā)運(yùn)行妻柒,還可以和其他進(jìn)程里的線(xiàn)程并發(fā)運(yùn)行扛拨。
進(jìn)程與進(jìn)程之間切換、線(xiàn)程和線(xiàn)程之間的切換都是有系統(tǒng)控制的举塔,但是進(jìn)程的開(kāi)銷(xiāo)要比線(xiàn)程的要大绑警。
7. linux 中 grep 和 find 的區(qū)別
grep 是用來(lái)查詢(xún)文件的內(nèi)部文本的內(nèi)容的
find 是用來(lái)搜索文件的路徑的
8. is 和 == 的區(qū)別
is 是比較兩個(gè)對(duì)象的地址是否相同
== 是比較兩個(gè)對(duì)象的值是否相同
ps :如果兩個(gè)變量對(duì)象為字符串或者數(shù),那么如果他們值相同央渣,他們的地址也是相同的计盒,is 和 == 的結(jié)果相同;
通過(guò)is進(jìn)行引用所指判斷芽丹,is是用來(lái)判斷兩個(gè)引用所指的對(duì)象是否相同北启。例如(a = 256, b = 256 , a is b == true;a = 300, b= 300, a is b == false;? x = "abc ef", y="abc ef", x is y == false)
但是對(duì)于數(shù)組拔第、元組咕村、字典、集合的值相同蚊俺,地址也不相同懈涛,is 和 == 的結(jié)果不同。
9. DNS 的作用
域名是為了方便記憶而專(zhuān)門(mén)建立的一套地址轉(zhuǎn)換系統(tǒng)泳猬,要訪(fǎng)問(wèn)一臺(tái)互聯(lián)網(wǎng)上的服務(wù)器批钠,最終還必須通過(guò)IP地址來(lái)實(shí)現(xiàn),域名解析就是將域名重新利用DNS服務(wù)器解析為IP地址的過(guò)程得封。
10. TCP 和 UDP 的區(qū)別埋心?TCP 三次握手、四次揮手
主要區(qū)別:
TCP 是面向連接的呛每,UDP 是面向無(wú)連接的
TCP 是面向字節(jié)流的踩窖,UDP 是基于數(shù)據(jù)報(bào)的
TCP 保證數(shù)據(jù)正確性,UDP 可能丟包
TCP 保證數(shù)據(jù)順序晨横,UDP 不保證
TCP 需要一對(duì)一洋腮,UDP可以一對(duì)多,也可以多對(duì)一手形。
UDP 的主要應(yīng)用場(chǎng)景:
直播:直播對(duì)實(shí)時(shí)性的要求比較高啥供,寧可丟包,也不要卡頓的
實(shí)時(shí)游戲:游戲的特點(diǎn)也是實(shí)時(shí)性比較高库糠,在這種情況下伙狐,采用自定義的可靠的 UDP 協(xié)議涮毫,自定義重傳策略,能夠把產(chǎn)生的延遲降到最低
TCP的應(yīng)用就比較多了贷屎,網(wǎng)站基本都是TCP/IP協(xié)議罢防。
TCP的三次握手和四次揮手
三次握手
1、A 告訴 B唉侄,我發(fā)起的包的序號(hào)是從哪個(gè)號(hào)開(kāi)始的咒吐;
2、B 同樣也告訴 A属划,B 發(fā)起的包的序號(hào)是從哪個(gè)號(hào)開(kāi)始的恬叹;
3、A告訴B同眯,好的绽昼,收到,就從這里開(kāi)始傳輸吧须蜗。
雙方建立連接之后需要共同維護(hù)一個(gè)狀態(tài)機(jī)硅确,在建立連接的過(guò)程中,雙方的狀態(tài)變化時(shí)序圖如下所示
第一次握手:建立連接時(shí)唠粥,客戶(hù)端發(fā)送連接請(qǐng)求到服務(wù)器疏魏,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn)晤愧;
第二次握手:服務(wù)器收到客戶(hù)端連接請(qǐng)求大莫,向客戶(hù)端發(fā)送允許連接應(yīng)答,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)官份;
第三次握手:客戶(hù)端收到服務(wù)器的允許連接應(yīng)答只厘,向服務(wù)器發(fā)送確認(rèn),客戶(hù)端和服務(wù)器進(jìn)入通信狀態(tài)舅巷,完成三次握手羔味。
(SYN 是發(fā)起一個(gè)鏈接,ACK 是回復(fù)钠右,RST 是重新連接赋元,F(xiàn)IN 是結(jié)束連接)
為何兩次握手即可建立鏈接,還需要第三次握手飒房?
為了防止失效的連接請(qǐng)求報(bào)文段被服務(wù)端接收搁凸,從而產(chǎn)生錯(cuò)誤
四次揮手
1、A告訴B狠毯,我傳完了护糖,我要結(jié)束了;
2嚼松、B回復(fù)A嫡良,好的锰扶,我知道了;
3寝受、過(guò)了一會(huì)坷牛,B也告訴A,好了很澄,我也傳完了漓帅,我要結(jié)束這個(gè)傳輸了啊痴怨;
4、然后B就回復(fù)說(shuō)器予,好的浪藻,收到。
第一次揮手
若客戶(hù)端 A 認(rèn)為數(shù)據(jù)發(fā)送完成乾翔,則它需要向服務(wù)端 B 發(fā)送連接釋放請(qǐng)求爱葵。
第二次揮手
B 收到連接釋放請(qǐng)求后,會(huì)告訴應(yīng)用層要釋放 TCP 鏈接反浓。然后會(huì)發(fā)送 ACK 包萌丈,并進(jìn)入 CLOSE_WAIT 狀態(tài),表示 A 到 B 的連接已經(jīng)釋放雷则,不接收 A 發(fā)的數(shù)據(jù)了辆雾。但是因?yàn)?TCP 連接時(shí)雙向的,所以 B 仍舊可以發(fā)送數(shù)據(jù)給 A月劈。
第三次揮手
B 如果此時(shí)還有沒(méi)發(fā)完的數(shù)據(jù)會(huì)繼續(xù)發(fā)送度迂,完畢后會(huì)向 A 發(fā)送連接釋放請(qǐng)求,然后 B 便進(jìn)入 LAST-ACK 狀態(tài)猜揪。
第四次揮手
A 收到釋放請(qǐng)求后惭墓,向 B 發(fā)送確認(rèn)應(yīng)答,此時(shí) A 進(jìn)入 TIME-WAIT 狀態(tài)而姐。該狀態(tài)會(huì)持續(xù) 2MSL(最大段生存期腊凶,指報(bào)文段在網(wǎng)絡(luò)中生存的時(shí)間,超時(shí)會(huì)被拋棄) 時(shí)間拴念,若該時(shí)間段內(nèi)沒(méi)有 B 的重發(fā)請(qǐng)求的話(huà)钧萍,就進(jìn)入 CLOSED 狀態(tài)。當(dāng) B 收到確認(rèn)應(yīng)答后丈莺,也便進(jìn)入 CLOSED 狀態(tài)划煮。
為什么 A 要進(jìn)入 TIME-WAIT 狀態(tài),等待 2MSL 時(shí)間后才進(jìn)入 CLOSED 狀態(tài)缔俄?
為了保證 B 能收到 A 的確認(rèn)應(yīng)答弛秋。若 A 發(fā)完確認(rèn)應(yīng)答后直接進(jìn)入 CLOSED 狀態(tài)器躏,如果確認(rèn)應(yīng)答因?yàn)榫W(wǎng)絡(luò)問(wèn)題一直沒(méi)有到達(dá),那么會(huì)造成 B 不能正常關(guān)閉蟹略。
11. http 的請(qǐng)求方式
常見(jiàn)的請(qǐng)求方式有GET登失、POST、HEAD
12. post 和 get 的區(qū)別
1挖炬、post 重點(diǎn)是向服務(wù)器發(fā)送數(shù)據(jù)揽浙;而get重點(diǎn)是從服務(wù)器上獲取數(shù)據(jù)。
2意敛、post 傳輸數(shù)據(jù)是通過(guò)http的post機(jī)制馅巷,將字段和對(duì)應(yīng)值封存在請(qǐng)求實(shí)體中發(fā)送給服務(wù)器,這個(gè)過(guò)程用戶(hù)是不可見(jiàn)的草姻;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? get 傳輸數(shù)據(jù)是通過(guò)url請(qǐng)求钓猬,以field(字段)和valued的形式,置于url之后撩独,并用敞曹?連接,多個(gè)請(qǐng)求數(shù)據(jù)用&連接综膀。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例如:http://127.0.0.1/Test/login.action?name=admin&password=admin,這個(gè)過(guò)程用戶(hù)是可見(jiàn)的澳迫。
3、post 可以上傳大量數(shù)據(jù)剧劝,所以一般傳文件都是用post橄登;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? get 只能傳輸少量數(shù)據(jù),因?yàn)槭躸rl長(zhǎng)度限制担平,但效率較高示绊。
4、post 安全性較高暂论,因?yàn)閭鬏斶^(guò)程用戶(hù)不可見(jiàn)面褐;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? get 安全性較低,因?yàn)閡rl是可見(jiàn)的取胎,可能泄露私密信息展哭。
5、post支持標(biāo)準(zhǔn)字符集闻蛀,可以正確傳輸中文字符匪傍;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? get 只能支持ASCLL碼,傳輸中文字符可能會(huì)亂碼觉痛。
13. 軟件測(cè)試方法有哪些
軟件測(cè)試方法匯總 https://www.cnblogs.com/peng-lan/p/9605269.html
如果按是否關(guān)心內(nèi)部結(jié)構(gòu)來(lái)劃分的話(huà)役衡,可以分成黑盒測(cè)試、白盒測(cè)試還有灰盒測(cè)試薪棒。
黑盒測(cè)試
又叫數(shù)據(jù)驅(qū)動(dòng)測(cè)試手蝎,把測(cè)試對(duì)象當(dāng)做看不見(jiàn)的黑盒榕莺,在完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的情況下,測(cè)試者僅依據(jù)產(chǎn)品的需求文檔來(lái)判斷測(cè)試結(jié)果的正確性棵介。它是站在使用軟件或程序的角度钉鸯,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行的測(cè)試。
黑盒測(cè)試主要測(cè)試的內(nèi)容
1. 是否有不正確或遺漏的功能邮辽?
2. 在接口上唠雕,輸入是否能正確的接收?能否輸出正確的結(jié)果吨述?
3. 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪(fǎng)問(wèn)錯(cuò)誤岩睁?
4. 性能上是否能夠滿(mǎn)足要求?
黑盒測(cè)試的主要設(shè)計(jì)方法
等價(jià)類(lèi)劃分法揣云、邊界值分析法笙僚、錯(cuò)誤推測(cè)法、因果圖法灵再、正交試驗(yàn)分析法、狀態(tài)遷移圖法亿笤、流程分析法
白盒測(cè)試
設(shè)計(jì)者可以看到軟件系統(tǒng)的內(nèi)部結(jié)構(gòu)翎迁,并且使用軟件的內(nèi)部知識(shí)(比如程序的內(nèi)部邏輯,設(shè)計(jì)原理)來(lái)指導(dǎo)測(cè)試數(shù)據(jù)及方法的選擇净薛。
灰盒測(cè)試
灰盒測(cè)試汪榔,介于黑盒和白盒之間,既關(guān)注測(cè)試內(nèi)部的邏輯肃拜,也關(guān)注程序運(yùn)行的外部表現(xiàn)痴腌,算是一種綜合性測(cè)試。
從測(cè)試方式上分燃领,可以分成手動(dòng)測(cè)試和自動(dòng)化測(cè)試士聪。
手動(dòng)測(cè)試
顧名思義,就是參照產(chǎn)品需求文檔猛蔽,對(duì)產(chǎn)品通過(guò)鼠標(biāo)點(diǎn)擊之類(lèi)的操作測(cè)試GUI(圖形用戶(hù)界面)剥悟。
自動(dòng)化測(cè)試
通過(guò)編寫(xiě)程序?qū)﹂_(kāi)發(fā)的程序進(jìn)行測(cè)試主要是進(jìn)行API(應(yīng)用程序編程接口)測(cè)試。
從測(cè)試階段來(lái)分曼库,可以分成單元測(cè)試区岗、集成測(cè)試、系統(tǒng)測(cè)試毁枯、驗(yàn)收測(cè)試
單元測(cè)試
單元測(cè)試是對(duì)軟件組成單元進(jìn)行測(cè)試慈缔。其目的是檢驗(yàn)軟件基本組成單位的正確性。
測(cè)試階段:編碼后
測(cè)試對(duì)象:最小模塊
測(cè)試人員:白盒測(cè)試工程師或開(kāi)發(fā)工程師
測(cè)試依據(jù):代碼和注釋+詳細(xì)設(shè)計(jì)文檔
測(cè)試方法:白盒測(cè)試
測(cè)試內(nèi)容:模塊接口測(cè)試种玛、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試藐鹤、路徑測(cè)試瓤檐、錯(cuò)誤處理測(cè)試、邊界測(cè)試
集成測(cè)試
集成測(cè)試也稱(chēng)聯(lián)合測(cè)試教藻、組裝測(cè)試距帅,將程序模塊采用適當(dāng)?shù)募刹呗越M裝起來(lái),對(duì)系統(tǒng)的接口及集成后的功能進(jìn)行正確性檢測(cè)的測(cè)試工作括堤。主要目的是檢查軟件單位之間的接口是否正確碌秸。
測(cè)試階段:一般單元測(cè)試之后進(jìn)行
測(cè)試對(duì)象:模塊間的接口
測(cè)試人員:白盒測(cè)試工程師或開(kāi)發(fā)工程師
測(cè)試依據(jù):?jiǎn)卧獪y(cè)試的模塊+概要設(shè)計(jì)文檔
測(cè)試方法:黑盒測(cè)試與白盒測(cè)試相結(jié)合
測(cè)試內(nèi)容:模塊之間數(shù)據(jù)傳輸、模塊之間功能沖突悄窃、模塊組裝功能正確性讥电、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、單模塊缺陷對(duì)系統(tǒng)的影響
系統(tǒng)測(cè)試
將軟件系統(tǒng)看成是一個(gè)系統(tǒng)的測(cè)試轧抗。包括對(duì)功能恩敌、性能以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測(cè)試。時(shí)間大部分在系統(tǒng)測(cè)試執(zhí)行階段
測(cè)試階段:集成測(cè)試通過(guò)之后
測(cè)試對(duì)象:整個(gè)系統(tǒng)(軟横媚、硬件)
測(cè)試人員:黑盒測(cè)試工程師
測(cè)試依據(jù):需求規(guī)格說(shuō)明文檔
測(cè)試方法:黑盒測(cè)試
測(cè)試內(nèi)容:功能纠炮、界面、可靠性灯蝴、易用性恢口、性能、兼容性穷躁、安全性等
驗(yàn)收測(cè)試
驗(yàn)收測(cè)試是部署軟件之前的最后一個(gè)測(cè)試操作耕肩。它是技術(shù)測(cè)試的最后一個(gè)階段,也稱(chēng)為交付測(cè)試问潭。驗(yàn)收測(cè)試的目的是確保軟件準(zhǔn)備就緒猿诸,按照項(xiàng)目合同、任務(wù)書(shū)狡忙、雙方約定的驗(yàn)收依據(jù)文檔梳虽,向軟件購(gòu)買(mǎi)都展示該軟件系統(tǒng)滿(mǎn)足原始需求。
測(cè)試階段:系統(tǒng)測(cè)試通過(guò)之后
測(cè)試對(duì)象:整個(gè)系統(tǒng)(包括軟硬件)灾茁。
測(cè)試人員:主要是最終用戶(hù)或者需求方怖辆。
測(cè)試依據(jù):用戶(hù)需求、驗(yàn)收標(biāo)準(zhǔn)
測(cè)試方法:黑盒測(cè)試
測(cè)試內(nèi)容:同系統(tǒng)測(cè)試(功能...各類(lèi)文檔等)
14. α測(cè)試和β測(cè)試的區(qū)別
α測(cè)試是由一個(gè)用戶(hù)在開(kāi)發(fā)環(huán)境下進(jìn)行的測(cè)試删顶,也可以是公司內(nèi)部的用戶(hù)在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試竖螃。在正式發(fā)布前,通常需要執(zhí)行α和β測(cè)試逗余。α測(cè)試不能由程序員或測(cè)試員完成特咆。
β測(cè)試是一種驗(yàn)收測(cè)試。β測(cè)試由軟件的最終用戶(hù)們在一個(gè)或多個(gè)用戶(hù)場(chǎng)所進(jìn)行。(類(lèi)似于公測(cè))
α測(cè)試與β測(cè)試的區(qū)別
測(cè)試的場(chǎng)所不同:α測(cè)試是指把用戶(hù)請(qǐng)到開(kāi)發(fā)方的場(chǎng)所來(lái)測(cè)試腻格,β測(cè)試是指在一個(gè)或多個(gè)用戶(hù)的場(chǎng)所進(jìn)行的測(cè)試画拾。
α測(cè)試的環(huán)境是受開(kāi)發(fā)方控制的,用戶(hù)的數(shù)量相對(duì)比較少,時(shí)間比較集中。β測(cè)試的環(huán)境是不受開(kāi)發(fā)方控制的,用戶(hù)數(shù)量相對(duì)比較多,時(shí)間不集中菜职。
α測(cè)試先于β測(cè)試執(zhí)行青抛。通用的軟件產(chǎn)品需要較大規(guī)模的β測(cè)試,測(cè)試周期比較長(zhǎng)。
15. 數(shù)據(jù)庫(kù)三范式
1酬核、第一范式(1NF):一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng)蜜另。
2、第二范式(2NF):滿(mǎn)足第一范式嫡意,要求實(shí)體的屬性完全依賴(lài)于主關(guān)鍵字举瑰,消除部分依賴(lài)。
3蔬螟、第三范式(3NF):滿(mǎn)足第二范式此迅,任何非主屬性不得傳遞依賴(lài)于主屬性,消除傳遞依賴(lài)旧巾。
為什么一般數(shù)據(jù)庫(kù)達(dá)到第三范式就可以了耸序?
規(guī)范數(shù)據(jù)庫(kù)主要目的就是盡量消除冗余,節(jié)省存儲(chǔ)空問(wèn)鲁猩,避免數(shù)據(jù)不一致性佑吝,提高對(duì)關(guān)系的操作效率,同時(shí)滿(mǎn)足應(yīng)用需求绳匀。實(shí)際上,并不一定要求全部模式都達(dá)到第五范式不可炸客。有時(shí)故意保留部分冗余可能更方便數(shù)據(jù)查詢(xún)疾棵。尤其對(duì)于那些更新頻度不高,查詢(xún)頻度極高的數(shù)據(jù)庫(kù)系統(tǒng)更是如此痹仙。
16. 常見(jiàn)的http狀態(tài)碼
常見(jiàn)的HTTP狀態(tài)碼 - xflonga - 博客園
狀態(tài)代碼有三位數(shù)字組成是尔,第一個(gè)數(shù)字定義了響應(yīng)的類(lèi)別,共分五種類(lèi)別:
1xx:指示信息--表示請(qǐng)求已接收开仰,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收拟枚、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶(hù)端錯(cuò)誤--請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求
常見(jiàn)的狀態(tài)碼
17. 常見(jiàn)的linux操作
linux常用命令大全(linux基礎(chǔ)命令入門(mén)到精通+實(shí)例講解+持續(xù)更新+命令備忘錄+面試復(fù)習(xí)) - 羅藍(lán)國(guó)度 - 博客園
cat /proc/version :查看linux版本信息
shutdown -h now :立刻關(guān)機(jī)
yum install -y "kernel-devel-uname-r == $(uname -r)":安裝和Linux內(nèi)核版本匹配的kernel-devel
clear :清空命令行
ifconfig :顯示或設(shè)置網(wǎng)卡(查ip等)(類(lèi)似windows中ipconfig)
cat /proc/cpuinfo :顯示CPU的信息
top :動(dòng)態(tài)實(shí)時(shí)顯示cpu众弓、內(nèi)存恩溅、進(jìn)程等使用情況(類(lèi)似windows下的任務(wù)管理器)
kill -9 進(jìn)程號(hào) :強(qiáng)制殺死進(jìn)程
find? 查找文件
cat [-n] 文件名 :顯示文件內(nèi)容,連行號(hào)一起顯示
vim 文件:編輯查看文件(同vi)
ps 用于顯示當(dāng)前進(jìn)程 (process) 的狀態(tài)谓娃。
free 用于顯示內(nèi)存狀態(tài)
sudo 以系統(tǒng)管理者的身份執(zhí)行指令脚乡,也就是說(shuō),經(jīng)由 sudo 所執(zhí)行的指令就好像是 root 親自執(zhí)行滨达。
w 命令用于顯示目前登入系統(tǒng)的用戶(hù)信息
screen 用于多重視窗管理程序奶稠。
procinfo 用于顯示系統(tǒng)狀態(tài)俯艰。
tload 用于顯示系統(tǒng)負(fù)載狀況
gitps 用于報(bào)告程序狀況。
su 用于變更為其他使用者的身份锌订,除 root 外竹握,需要鍵入該使用者的密碼。
18. 訪(fǎng)問(wèn)一個(gè)網(wǎng)站需要用到哪些協(xié)議
應(yīng)用層:肯定要用到http協(xié)議或者https協(xié)議辆飘,還要用到DNS域名解析服務(wù)協(xié)議
傳輸層:需要TCP協(xié)議來(lái)提供可靠的數(shù)據(jù)傳輸啦辐;需要UDP協(xié)議,因?yàn)镈NS需要使用UDP協(xié)議傳輸
網(wǎng)絡(luò)層:需要用到IP協(xié)議劈猪,用來(lái)IP包的傳輸和路由的選擇昧甘;ICMP協(xié)議:提供網(wǎng)絡(luò)傳輸中的差錯(cuò)檢測(cè);ARP協(xié)議战得,將目標(biāo)IP地址廣播到局域網(wǎng)獲取MAC地址
19. 應(yīng)用層常見(jiàn)協(xié)議
應(yīng)用層常見(jiàn)協(xié)議(HTTP/FTP/SMTP)
應(yīng)用層協(xié)議(DHCP/DNS/TELNET/SSH/TFTP)
一充边、HTTP協(xié)議(超文本傳輸協(xié)議(Hypertext transfer protocol))
概念:它是一種詳細(xì)規(guī)定了瀏覽器和萬(wàn)維網(wǎng)(WWW = World Wide Web)服務(wù)器之間互相通信的規(guī)則,通過(guò)因特網(wǎng)傳送萬(wàn)維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議常侦。
端口:HTTP默認(rèn)的端口號(hào)為 TCP + 80浇冰,HTTPS的端口號(hào)為 TCP + 443。
應(yīng)用:瀏覽網(wǎng)頁(yè)是HTTP的主要應(yīng)用聋亡,但是這并不代表HTTP就只能應(yīng)用于網(wǎng)頁(yè)的瀏覽肘习。HTTP是一種協(xié)議,只要通信的雙方都遵守這個(gè)協(xié)議坡倔,HTTP就能有用武之地漂佩。比如常用的QQ,迅雷這些軟件罪塔,都會(huì)使用HTTP協(xié)議(還包括其他的協(xié)議)投蝉。
關(guān)于HTTP協(xié)議,詳情看上面鏈接征堪,很詳細(xì)瘩缆。講的蠻好的。
二佃蚜、FTP協(xié)議( 文件傳輸協(xié)議(File Transfer Protocol))
概念:它是因特網(wǎng)中使用最廣泛的文件傳輸協(xié)議庸娱。FTP使用交互式的訪(fǎng)問(wèn),允許客戶(hù)指定文件的類(lèi)型和格式(如指明是否使用ASCII碼)谐算,并允許文件具有存取權(quán)限(如訪(fǎng)問(wèn)文件的用戶(hù)必須經(jīng)過(guò)授權(quán)熟尉,并輸入有效的口令)。文件傳輸協(xié)議有基于TCP的FTP和基于UDP的簡(jiǎn)單文件傳輸協(xié)議TFTP洲脂,它們都是文件共享協(xié)議中的一大類(lèi)臣樱,即復(fù)制整個(gè)文件,其特點(diǎn)是:若要存取一個(gè)文件,就必須先獲得一個(gè)本地的文件副本雇毫。如果要修改文件玄捕,只能對(duì)文件的副本進(jìn)行修改,然后再將修改后的文件傳回到原節(jié)點(diǎn)棚放。
端口:FTP默認(rèn)的端口號(hào)為 TCP + 21
FTP工作模式:兩種工作模式:主動(dòng)模式和被動(dòng)模式;
主動(dòng)模式:服務(wù)器主動(dòng)連接客戶(hù)端枚粘;
被動(dòng)模式:客戶(hù)端主動(dòng)連接服務(wù)器
如何知道FTP傳送一個(gè)文件結(jié)束?
服務(wù)器總是執(zhí)行數(shù)據(jù)連接的主動(dòng)打開(kāi)飘蚯。通常服務(wù)器也執(zhí)行數(shù)據(jù)連接的主動(dòng)關(guān)閉馍迄,除非當(dāng)客戶(hù)向服務(wù)器發(fā)送流形式的文件時(shí),需要客戶(hù)來(lái)關(guān)閉連接局骤。
三攀圈、 SMTP協(xié)議(簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol))
概念:它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式峦甩。SMTP協(xié)議屬于TCP/IP協(xié)議簇赘来,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。通過(guò)SMTP協(xié)議所指定的服務(wù)器,就可以把E-mail寄到收信人的服務(wù)器上了凯傲,整個(gè)過(guò)程只要幾分鐘犬辰。SMTP服務(wù)器則是遵循SMTP協(xié)議的發(fā)送郵件服務(wù)器,用來(lái)發(fā)送或中轉(zhuǎn)發(fā)出的電子郵件冰单。SMTP 是一種TCP協(xié)議支持的提供可靠且有效電子郵件傳輸?shù)膽?yīng)用層協(xié)議幌缝。
端口:SMTP默認(rèn)的端口號(hào)為 TCP + 25
STMP的命令和應(yīng)答:
四、TELNET協(xié)議(Internet遠(yuǎn)程登錄服務(wù)協(xié)議)
概念:Telnet協(xié)議是TCP/IP協(xié)議族中的一員诫欠,是Internet遠(yuǎn)程登錄服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式涵卵。它為用戶(hù)提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力。在終端使用者的電腦上使用telnet程序荒叼,用它連接到服務(wù)器轿偎。終端使用者可以在telnet程序中輸入命令,這些命令會(huì)在服務(wù)器上運(yùn)行甩挫,就像直接在服務(wù)器的控制臺(tái)上輸入一樣〈幻浚可以在本地就能控制服務(wù)器伊者。要開(kāi)始一個(gè)telnet會(huì)話(huà),必須輸入用戶(hù)名和密碼來(lái)登錄服務(wù)器间护。
端口:TELNET默認(rèn)的端口號(hào)為 TCP + 23
五亦渗、 DHCP協(xié)議(動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol))
概念:DHCP協(xié)議使用UDP協(xié)議工作。當(dāng)我們將客戶(hù)主機(jī)ip地址設(shè)置為動(dòng)態(tài)獲取方式時(shí)汁尺,DHCP服務(wù)器就會(huì)根據(jù)DHCP協(xié)議給客戶(hù)端分配IP法精,使得客戶(hù)機(jī)能夠利用這個(gè)IP上網(wǎng)。
端口:DHCP默認(rèn)的端口號(hào)為 UDP + 67
操作流程:
1.尋找DHCP Server
當(dāng)DHCP客戶(hù)機(jī)第一次登錄網(wǎng)絡(luò)的時(shí)候(也就是客戶(hù)機(jī)上沒(méi)有任何IP地址數(shù)據(jù)時(shí)),它會(huì)通過(guò)UDP 67端口向網(wǎng)絡(luò)上發(fā)出一個(gè)DHCPDISCOVER數(shù)據(jù)包(包中包含客戶(hù)機(jī)的MAC地址和計(jì)算機(jī)名等信息)搂蜓。因?yàn)榭蛻?hù)機(jī)還不知道自己屬于哪一個(gè)網(wǎng)絡(luò)狼荞,所以封包的源地址為0.0.0.0,目標(biāo)地址為255.255.255.255帮碰,然后再附上DHCP discover的信息相味,向網(wǎng)絡(luò)進(jìn)行廣播。
2. 提供IP地址租用
當(dāng)DHCP Server監(jiān)聽(tīng)到客戶(hù)機(jī)發(fā)出的DHCP discover廣播后殉挽,它會(huì)從那些還沒(méi)有租出去的地址中丰涉,選擇最前面的空置IP,連同其它TCP/IP設(shè)定斯碌,通過(guò)UDP 68端口響應(yīng)給客戶(hù)機(jī)一個(gè)DHCP OFFER數(shù)據(jù)包(包中包含IP地址一死、子網(wǎng)掩碼、地址租期等信息)傻唾。此時(shí)還是使用廣播進(jìn)行通訊投慈,源IP地址為DHCP Server的IP地址,目標(biāo)地址為255.255.255.255策吠。同時(shí)逛裤,DHCP Server為此客戶(hù)保留它提供的IP地址,從而不會(huì)為其他DHCP客戶(hù)分配此IP地址猴抹。
3. 接受IP租約
如果客戶(hù)機(jī)收到網(wǎng)絡(luò)上多臺(tái)DHCP服務(wù)器的響應(yīng)带族,只會(huì)挑選其中一個(gè)DHCP OFFER(一般是最先到達(dá)的那個(gè)),并且會(huì)向網(wǎng)絡(luò)發(fā)送一個(gè)DHCPREQUEST廣播數(shù)據(jù)包(包中包含客戶(hù)端的MAC地址蟀给、接受的租約中的IP地址蝙砌、提供此租約的DHCP服務(wù)器地址等),告訴所有DHCP Server它將接受哪一臺(tái)服務(wù)器提供的IP地址跋理,所有其他的DHCP服務(wù)器撤銷(xiāo)它們的提供以便將IP地址提供給下一次IP租用請(qǐng)求择克。此時(shí),由于還沒(méi)有得到DHCP Server的最后確認(rèn)前普,客戶(hù)端仍然使用0.0.0.0為源IP地址肚邢,255.255.255.255為目標(biāo)地址進(jìn)行廣播。
4. 租約確認(rèn)
當(dāng)DHCP Server接收到客戶(hù)機(jī)的DHCP REQUEST之后拭卿,會(huì)廣播返回給客戶(hù)機(jī)一個(gè)DHCP ACK消息包骡湖,表明已經(jīng)接受客戶(hù)機(jī)的選擇,并將這一IP地址的合法租用以及其他的配置信息都放入該廣播包發(fā)給客戶(hù)機(jī)峻厚。
客戶(hù)機(jī)在接收到DHCP ACK廣播后响蕴,會(huì)向網(wǎng)絡(luò)發(fā)送三個(gè)針對(duì)此IP地址的ARP解析請(qǐng)求以執(zhí)行沖突檢測(cè),查詢(xún)網(wǎng)絡(luò)上有沒(méi)有其它機(jī)器使用該IP地址惠桃;如果發(fā)現(xiàn)該IP地址已經(jīng)被使用浦夷,客戶(hù)機(jī)會(huì)發(fā)出一個(gè)DHCP DECLINE數(shù)據(jù)包給DHCP Server辖试,拒絕此IP地址租約,并重新發(fā)送DHCP discover信息劈狐。此時(shí)罐孝,在DHCP服務(wù)器管理控制臺(tái)中,會(huì)顯示此IP地址為BAD_ADDRESS懈息。
如果網(wǎng)絡(luò)上沒(méi)有其它主機(jī)使用此IP地址肾档,則客戶(hù)機(jī)的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網(wǎng)絡(luò)中的主機(jī)進(jìn)行通訊
六辫继、 DNS協(xié)議(域名解析協(xié)議(Domain Name System))
概念: 萬(wàn)維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù)怒见,能夠使用戶(hù)更方便的訪(fǎng)問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串姑宽。通過(guò)域名遣耍,最終得到該域名對(duì)應(yīng)的IP地址的過(guò)程叫做域名解析(或主機(jī)名解析)
端口: DNS默認(rèn)的端口號(hào)為 UDP + 53
DNS域名解析分類(lèi):遞歸解析和迭代解析(具體可以看上面鏈接)
20. 死鎖的四個(gè)必要條件
1. 互斥條件:
進(jìn)程要求對(duì)所分配的資源(如打印機(jī))進(jìn)行排他性控制,即在一段時(shí)間內(nèi)某資源僅為一個(gè)進(jìn)程所占有炮车。此時(shí)若有其他進(jìn)程請(qǐng)求該資源舵变,則請(qǐng)求進(jìn)程只能等待。
2. 不可剝奪條件:
進(jìn)程所獲得的資源在未使用完畢之前瘦穆,不能被其他進(jìn)程強(qiáng)行奪走纪隙,即只能由獲得該資源的進(jìn)程自己來(lái)釋放(只能是主動(dòng)釋放)。
3. 請(qǐng)求與保持條件:
進(jìn)程已經(jīng)保持了至少一個(gè)資源扛或,但又提出了新的資源請(qǐng)求绵咱,而該資源已被其他進(jìn)程占有,此時(shí)請(qǐng)求進(jìn)程被阻塞熙兔,但對(duì)自己已獲得的資源保持不放悲伶。
4. 循環(huán)與等待條件:
存在一種進(jìn)程資源的循環(huán)等待鏈,鏈中每一個(gè)進(jìn)程已獲得的資源同時(shí)被鏈中下一個(gè)進(jìn)程所請(qǐng)求住涉。即存在一個(gè)處于等待狀態(tài)的進(jìn)程集合{Pl, P2, …, pn}麸锉,其中Pi等待的資源被P(i+1)占有(i=0, 1, …, n-1),Pn等待的資源被P0占有舆声,如圖2-15所示花沉。直觀(guān)上看,循環(huán)等待條件似乎和死鎖的定義一樣媳握,其實(shí)不然碱屁。按死鎖定義構(gòu)成等待環(huán)所 要求的條件更嚴(yán),它要求Pi等待的資源必須由P(i+1)來(lái)滿(mǎn)足毙芜,而循環(huán)等待條件則無(wú)此限制忽媒。 例如争拐,系統(tǒng)中有兩臺(tái)輸出設(shè)備腋粥,P0占有一臺(tái)晦雨,PK占有另一臺(tái),且K不屬于集合{0, 1, …, n}隘冲。Pn等待一臺(tái)輸出設(shè)備闹瞧,它可以從P0獲得,也可能從PK獲得展辞。因此奥邮,雖然Pn、P0和其他 一些進(jìn)程形成了循環(huán)等待圈罗珍,但PK不在圈內(nèi)洽腺,若PK釋放了輸出設(shè)備,則可打破循環(huán)等待, 如圖2-16所示覆旱。因此循環(huán)等待只是死鎖的必要條件蘸朋。
21. 事務(wù)的四大特性(ACID)
(1)原子性(Atomicity)
一個(gè)事務(wù)是一個(gè)不可分割的整體,為了保證事務(wù)的總體目標(biāo)扣唱,事務(wù)必須具有原子性藕坯,即當(dāng)數(shù)據(jù)修改時(shí),要么全都執(zhí)行噪沙,要么全都不執(zhí)行炼彪。即,不允許事務(wù)部分地完成正歼,避免了只執(zhí)行這些操作的一部分而帶來(lái)的錯(cuò)誤辐马。
(2)一致性(Consistency)
一個(gè)事務(wù)在執(zhí)行之前和執(zhí)行之后,數(shù)據(jù)庫(kù)數(shù)據(jù)必須保持一致性朋腋。數(shù)據(jù)庫(kù)的一致性狀態(tài)應(yīng)該滿(mǎn)足模式鎖指定的約束條件齐疙,那么在完整執(zhí)行該事務(wù)后,數(shù)據(jù)庫(kù)仍然處于一致性狀態(tài)旭咽。
例如:銀行轉(zhuǎn)賬贞奋,轉(zhuǎn)賬前后兩個(gè)賬戶(hù)金額之和應(yīng)保持不變贸街。
(3)隔離性(Isolation)
由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離糖荒。事務(wù)查看數(shù)據(jù)庫(kù)時(shí)數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài)蛾坯,要么是另一事務(wù)修改它之后的狀態(tài)仲墨,事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù)勾缭。
例如:對(duì)任何一對(duì)事務(wù)T1和T2,對(duì)T1而言目养,T2要么在T1開(kāi)始之前已經(jīng)結(jié)束俩由,要么在T1完成之后再開(kāi)始執(zhí)行。
(4)持久性(Durability)
也被稱(chēng)為永久性癌蚁,事務(wù)完成以后幻梯,DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))保證它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的修改是永久性的兜畸,當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時(shí),該修改也永久保持碘梢。持久性一般通過(guò)數(shù)據(jù)庫(kù)備份與恢復(fù)來(lái)保證咬摇。
22. 數(shù)據(jù)庫(kù)的隔離級(jí)別
讀未提交(Read Uncommitted):只處理更新丟失。如果一個(gè)事務(wù)已經(jīng)開(kāi)始寫(xiě)數(shù)據(jù)煞躬,則不允許其他事務(wù)同時(shí)進(jìn)行寫(xiě)操作肛鹏,但允許其他事務(wù)讀此行數(shù)據(jù)《髋妫可通過(guò)“排他寫(xiě)鎖”實(shí)現(xiàn)在扰。
讀提交(Read Committed):處理更新丟失、臟讀雷客。讀取數(shù)據(jù)的事務(wù)允許其他事務(wù)繼續(xù)訪(fǎng)問(wèn)改行數(shù)據(jù)健田,但是未提交的寫(xiě)事務(wù)將會(huì)禁止其他事務(wù)訪(fǎng)問(wèn)改行》鹑遥可通過(guò)“瞬間共享讀鎖”和“排他寫(xiě)鎖”實(shí)現(xiàn)妓局。
可重復(fù)讀取(Repeatable Read):處理更新丟失呈宇、臟讀和不可重復(fù)讀取好爬。讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫(xiě)事務(wù),但允許讀事務(wù)甥啄,寫(xiě)事務(wù)則禁止任何其他事務(wù)存炮。可通過(guò)“共享讀鎖”和“排他寫(xiě)鎖”實(shí)現(xiàn)蜈漓。
序列化(Serializable):提供嚴(yán)格的事務(wù)隔離穆桂。要求失去序列化執(zhí)行,事務(wù)只能一個(gè)接一個(gè)地執(zhí)行融虽,不能并發(fā)執(zhí)行享完。僅僅通過(guò)“行級(jí)鎖”是無(wú)法實(shí)現(xiàn)事務(wù)序列化的,必須通過(guò)其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢(xún)操作的事務(wù)訪(fǎng)問(wèn)到有额。
隔離級(jí)別越高般又,越能保證數(shù)據(jù)的完整性和統(tǒng)一性,但是對(duì)并發(fā)性能的影響也越大巍佑。對(duì)于多數(shù)應(yīng)用程序茴迁,可以?xún)?yōu)先考慮把數(shù)據(jù)庫(kù)系統(tǒng)的隔離級(jí)別設(shè)為Read Committed。它能夠避免臟讀萤衰,而且具有較好的并發(fā)性能堕义。盡管它會(huì)導(dǎo)致不可重復(fù)讀、幻讀和第二類(lèi)丟失更新這些并發(fā)問(wèn)題脆栋,在可能出現(xiàn)這類(lèi)問(wèn)題的個(gè)別場(chǎng)合倦卖,可以由應(yīng)用程序采用悲觀(guān)鎖或樂(lè)觀(guān)鎖來(lái)控制昔馋。
23. E-R圖
ER模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此之間相互連接的關(guān)系糖耸。
ER圖是幫助用戶(hù)建立數(shù)據(jù)庫(kù)的工具,人們大都應(yīng)用ER圖和關(guān)系模型創(chuàng)建數(shù)據(jù)庫(kù)表丘薛。
矩形框:表示實(shí)體嘉竟;菱形框:表示聯(lián)系;橢圓形框:表示實(shí)體或聯(lián)系的屬性
24. IP地址(A/B/C/D類(lèi))
化成十進(jìn)制就是:
A類(lèi)地址:0.0.0.0到127.255.255.255洋侨,第1字節(jié)為網(wǎng)絡(luò)地址舍扰,其它3個(gè)字節(jié)為主機(jī)地址
① 10.X.X.X是私有地址(所謂的私有地址就是在互聯(lián)網(wǎng)上不使用,而被用在局域網(wǎng)絡(luò)中的地址)希坚。
B類(lèi)地址:128.0.0.0到191.255.255.255边苹,第2字節(jié)為網(wǎng)絡(luò)地址,其它2個(gè)字節(jié)為主機(jī)地址
① 172.16.0.0---172.31.255.255是私有地址裁僧。
C類(lèi)地址:192.0.0.0到223.255.255.255个束,第3字節(jié)為網(wǎng)絡(luò)地址,其它1個(gè)字節(jié)為主機(jī)地址
①192.168.X.X是私有地址聊疲。(192.168.0.0---192.168.255.255)
D類(lèi)地址:224.0.0.0到239.255.255.255茬底, D類(lèi)地址沒(méi)有主機(jī)地址。(郴裰蓿考)
E類(lèi)地址:240.0.0.0到255.255.255.255阱表, E類(lèi)地址同樣沒(méi)有主機(jī)地址。
25. 根據(jù)子網(wǎng)掩碼和ip地址求網(wǎng)絡(luò)地址和廣播地址
將IP地址和子網(wǎng)掩碼換算為二進(jìn)制贡珊,子網(wǎng)掩碼連續(xù)全1的是網(wǎng)絡(luò)地址最爬,后面的是主機(jī)地址,||前為網(wǎng)絡(luò)地址门岔,||后為主機(jī)地址爱致。
IP地址和子網(wǎng)掩碼進(jìn)行與運(yùn)算,結(jié)果是網(wǎng)絡(luò)地址(即主機(jī)號(hào)全0是網(wǎng)絡(luò)地址)
將運(yùn)算結(jié)果中的網(wǎng)絡(luò)地址不變寒随,主機(jī)地址變?yōu)?蒜鸡,結(jié)果就是廣播地址
地址范圍就是含在本網(wǎng)段內(nèi)的所有主機(jī)
網(wǎng)絡(luò)地址+1即為第一個(gè)主機(jī)地址,廣播地址-1即為最后一個(gè)主機(jī)地址牢裳,
由此可以看出地址范圍是: 網(wǎng)絡(luò)地址+1 至 廣播地址-1
主機(jī)的數(shù)量=2^二進(jìn)制位數(shù)的主機(jī)-2
減2是因?yàn)橹鳈C(jī)不包括網(wǎng)絡(luò)地址和廣播地址逢防。
例如題目求10.10.72.176/28的有效ip地址
16表示子網(wǎng)掩碼有16個(gè)1,則該網(wǎng)絡(luò)ip子網(wǎng)掩碼則為11111111.11111111.11111111.11110000,即255.255.255.240蒲讯,則子網(wǎng)掩碼的前28位為網(wǎng)絡(luò)地址忘朝,后4位為主機(jī)地址。10.10.72.176化為二進(jìn)制為00001010.00001010.01001000.10110000判帮,將兩數(shù)相與可得00001010.00001010.01001000.10110000局嘁,則有效ip應(yīng)大于10.10.72.176溉箕。
26. post和put的區(qū)別
PUT和POST都有更改指定URI的語(yǔ)義.但PUT被定義為idempotent的方法,POST則不是.idempotent的方法:如果一個(gè)方法重復(fù)執(zhí)行
多次悦昵,產(chǎn)生的效果是一樣的肴茄,那就是idempotent的。也就是說(shuō):
PUT請(qǐng)求:如果兩個(gè)請(qǐng)求相同但指,后一個(gè)請(qǐng)求會(huì)把第一個(gè)請(qǐng)求覆蓋掉寡痰。(所以PUT用來(lái)改資源)
Post請(qǐng)求:后一個(gè)請(qǐng)求不會(huì)把第一個(gè)請(qǐng)求覆蓋掉。(所以Post用來(lái)增資源)