秋招知識(shí)點(diǎn)匯總

Python

1.Python實(shí)現(xiàn)單例模式

1.1.為什么要用單例模式

在系統(tǒng)中確保某個(gè)對(duì)象的唯一性高帖,即一個(gè)類只能有一個(gè)實(shí)例有時(shí)是非常重要的指蚁。
舉例:1.Windows任務(wù)管理器梭姓,多個(gè)打開(kāi)如果內(nèi)容一致褥民,重復(fù)對(duì)象涤伐,造成浪費(fèi)盔憨。內(nèi)容不一致徙菠,存在至少一個(gè)窗口內(nèi)容錯(cuò)誤,造成誤解郁岩。
2.一個(gè)項(xiàng)目中多個(gè)地方需要讀取同一份配置文件婿奔,如果每次使用都重新創(chuàng)建實(shí)例導(dǎo)致IO浪費(fèi)。
3.一個(gè)網(wǎng)站的訪問(wèn)量问慎、在線人數(shù)萍摊,在項(xiàng)目中是全局唯一。

1.2.如何寫(xiě)單例模式

1.使用__new__

class User:
    _instance = None
    def __new__ = (cls, *args, **kwargs):
        if not cls._instance:
            cls._instance=super().__new__(cls)
        return cls._instance
        
    def __init__(self,name):
        self.name=name

2.使用裝飾器

instance={}

def singleton(cls):
    def get_instance(*args,**kwargs):
        cls_name=cls.__name__
        if not cls_name in instances:
            instance=cls(*args,**kwargs)
            instances[cls_name]=instance
        return instances[cls_name]
    return get_instance

@singleton
class User:
    _instance=None
    
    def __init__(self,name):
        self.name=name

3.使用元類(略如叼,不會(huì))

1.3.線程安全(加線程鎖)

import threading

def synchornized(func):
    
    func.__lock__ = threading.Lock()
    
    def lock_func(*args,**kwargs):
        with func.__lock__:
            return func(*args,**kwargs)
    
    return lock_func
    
class User:
    _instance = None
    
    @synchornized
    def __new__ = (cls, *args, **kwargs):
        if not cls._instance:
            cls._instance=super().__new__(cls)
        return cls._instance
        
    def __init__(self,name):
        self.name=name

1.4.單例模式優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
1.全局只有一個(gè)接入點(diǎn)冰木,可以更好的進(jìn)行數(shù)據(jù)同步控制,避免多重占用笼恰;
2.由于單例模式要求全局內(nèi)只有一個(gè)實(shí)例踊沸,因而可以節(jié)省比較多的內(nèi)存空間;
3.單例可常駐內(nèi)存挖腰,減少系統(tǒng)開(kāi)銷
缺點(diǎn):
1.由于單例對(duì)象是全局共享雕沿,狀態(tài)維護(hù)需要特別小心,一處修改影響全局
2.單例對(duì)象沒(méi)有抽象層猴仑,擴(kuò)展不便
3.賦予單例太多職責(zé)审轮,違反單一職責(zé)原則
4.單例在并發(fā)協(xié)作軟件模塊中需要最先完成肥哎,不利于測(cè)試
5.單例模式在某種情況會(huì)導(dǎo)致資源瓶頸

2.GIL

Linux

1.常見(jiàn)命令

1.1.關(guān)機(jī)

查看有沒(méi)有其他用戶在線:who
內(nèi)存同步到磁盤(pán):sync
關(guān)機(jī):shutdown [-krhc] time message
    -k:只發(fā)送警告信息
    -r:重新啟動(dòng)
    -h:關(guān)機(jī)
    -c:取消正在進(jìn)行的shutdown命令

1.2.文件與目錄

列出文件或者目錄的信息:ls [-adl] file|dir
    -a:列出全部的文件
    -d:僅列出目錄本身
    -l:以長(zhǎng)數(shù)據(jù)串行列出
更換當(dāng)前目錄:cd
創(chuàng)建目錄:mkdir [-mp] path
    -m:配置目錄權(quán)限
    -p:遞歸創(chuàng)建目錄
刪除目錄(目錄必須為空):rmdir [-p] path
    -p:遞歸刪除目錄
更新文件時(shí)間或創(chuàng)建新文件:touch [-acdmt] filename
    -a: 更新atime【讀取時(shí)間記錄】
    -c:更新ctime,若該文件不存在則不創(chuàng)建新文件
    -m:更新mtime【修改時(shí)間記錄】
復(fù)制文件:cp [-adpr] source destination
    -a:相當(dāng)于 -dpr
    -d:復(fù)制時(shí)保留鏈接
    -p:復(fù)制文件屬性
    -r:遞歸復(fù)制
刪除文件:rm [-fir] file|dir
    -r:遞歸刪除
移動(dòng)文件:mv [-fiu] source destination
    -f:強(qiáng)制覆蓋

1.3.獲取文件內(nèi)容

取得文件內(nèi)容:cat [-AbEnTv] filename
    -n:打印行號(hào)疾渣,包括空白行
    -b:打印行號(hào)篡诽,不包括空白行
反向打印文件內(nèi)容(從最后一行開(kāi)始):tac
按頁(yè)查看文件內(nèi)容:more、less(可以向前翻頁(yè))
取得文件前幾行:head [-n] filename
    -n:后面接數(shù)字榴捡,代表顯示行數(shù)
取得文件后幾行:tail
以字符或16進(jìn)制顯示二進(jìn)制文件:od

1.4.指令與文件搜索

指令搜索:which [-a] command
    -a:列出所有指令
特定目錄搜索文件(二進(jìn)制杈女、源代碼、man手冊(cè)):whereis [-bmsu] filename
文件搜索(查數(shù)據(jù)庫(kù)吊圾,非實(shí)時(shí)):locate [-ir] keyword
    -r 正則
磁盤(pán)文件搜索:find [basedir] [option]
    -mtime n|+n|-n:列出【n天前那一天|n天前(不含n)|n天之內(nèi)(含n)】修改過(guò)內(nèi)容的文件
    -uid n|-gid n|-user name|-group name:列出對(duì)應(yīng)擁有者和所屬群組的文件
    -name filename
    -size [+-]
    -type TYPE

1.5.壓縮與打包

打包壓縮:tar [-z|-j|-J] [cv] [-f 新建的tar文件] filename...
查看:tar [-z|-j|-J] [tv] [-f 已有的tar文件]
解壓縮:tar [-z|-j|-J] [xv] [-f 已有的tar文件] [-C 目錄](méi)
    -z|-j|-J:使用zip|bzip2|xz
    -c:新建打包文件
    -t:查看打包文件
    -x:解壓縮
    -v:在處理過(guò)程中达椰,顯示正在處理的文件名
    -f:要處理的文件
    -C:在特定目錄解壓縮

1.6.進(jìn)程管理

查看自己進(jìn)程:ps -l
查看系統(tǒng)進(jìn)程:ps aux
查看所有進(jìn)程樹(shù):pstree -A
實(shí)時(shí)顯示進(jìn)程:top
查看占用端口的進(jìn)程 netstat

MySQL

1.索引

索引是在存儲(chǔ)引擎層實(shí)現(xiàn)的,而不是在服務(wù)器層實(shí)現(xiàn)的项乒,所以不同存儲(chǔ)引擎具有不同的索引類型和實(shí)現(xiàn)啰劲。

1.1.B+Tree

數(shù)據(jù)結(jié)構(gòu):基于B Tree,也就是平衡樹(shù)實(shí)現(xiàn)的檀何,葉子結(jié)點(diǎn)間存在順序訪問(wèn)指針蝇裤。
特點(diǎn):是大多數(shù)MySQL存儲(chǔ)引擎的默認(rèn)索引類型;
有序频鉴,可以用于排序和分組栓辜;
可以指定多個(gè)列作為索引列,共同組成鍵
適用于全鍵值垛孔、鍵值范圍和鍵前綴查找
存儲(chǔ)引擎:InnoDB 聚簇索引(輔助索引依靠主鍵)藕甩、MyISAM 非聚簇索引(相互獨(dú)立,只存儲(chǔ)地址)

1.2.哈希索引

查找O(1)時(shí)間復(fù)雜度似炎,但失去有序性辛萍,無(wú)法排序,只能精確查找
InnoDB 自適應(yīng)哈希索引:某個(gè)索引值使用非常頻繁羡藐,會(huì)在B+Tree的索引上再創(chuàng)建一個(gè)哈希索引

1.3.全文索引

MyISAM特性贩毕,使用倒排索引實(shí)現(xiàn)。

1.4.怎么知道一條語(yǔ)句是否使用了索引

explain函數(shù)key關(guān)鍵字
key: 實(shí)際使用的索引仆嗦。如果為NULL辉阶,則沒(méi)有使用索引。很少的情況下瘩扼,MySQL會(huì)選擇優(yōu)化不足的索引谆甜。這種情況下,可以在Select語(yǔ)句中使用USE INDEX(indexname)來(lái)強(qiáng)制使用一個(gè)索引或者用IGNORE INDEX(indexname)來(lái)強(qiáng)制MySQL忽略索引集绰;

1.5.MySQL

2.存儲(chǔ)引擎

比較:

特性 InnoDB MyISAM
事務(wù) 支持 不支持
外鍵 支持 不支持
索引結(jié)構(gòu) 聚集索引 非聚集索引
行級(jí)规辱、表級(jí) 只支持表級(jí)
壓縮表 不支持 支持
全文搜索 支持(舊版本不支持) 支持

3.樂(lè)觀鎖和悲觀鎖

3.1.樂(lè)觀鎖

假設(shè)最好的情況,別人不會(huì)修改數(shù)據(jù)栽燕,更新的時(shí)候會(huì)判斷別人有沒(méi)有更新數(shù)據(jù)罕袋,可以使用版本號(hào)和CAS算法實(shí)現(xiàn)改淑,適用于多讀的場(chǎng)景,可以提高吞吐量浴讯。
CAS算法:讀內(nèi)存V預(yù)設(shè)值A(chǔ)朵夏,若A再次讀取時(shí)沒(méi)有發(fā)生變化,更新為更新值B榆纽。缺點(diǎn):ABA問(wèn)題仰猖、循環(huán)時(shí)間開(kāi)銷時(shí)長(zhǎng)大

3.2.悲觀鎖

假設(shè)最壞的情況,每個(gè)人都會(huì)修改數(shù)據(jù)奈籽,所以每次拿數(shù)據(jù)都會(huì)上鎖饥侵,別人想拿就會(huì)阻塞知道他拿到鎖。(共享資源每次只給一個(gè)線程使用唠摹,其它線程阻塞爆捞,用完后再把資源轉(zhuǎn)讓給其它線程)實(shí)現(xiàn):synchronized

4.

計(jì)算機(jī)網(wǎng)絡(luò)

1.五層網(wǎng)絡(luò)協(xié)議體系結(jié)構(gòu)的理解

  • 應(yīng)用層:通過(guò)應(yīng)用進(jìn)程間的交互來(lái)完成特定網(wǎng)絡(luò)應(yīng)用奉瘤。應(yīng)用層協(xié)議定義的是應(yīng)用進(jìn)程(進(jìn)程:主機(jī)中正在運(yùn)行的程序)間的通信和交互的規(guī)則勾拉。對(duì)于不同的網(wǎng)絡(luò)應(yīng)用需要不同的應(yīng)用層協(xié)議。在互聯(lián)網(wǎng)中應(yīng)用層協(xié)議很多盗温,如域名系統(tǒng) DNS藕赞,支持萬(wàn)維網(wǎng)應(yīng)用的 HTTP 協(xié)議,支持電子郵件的 SMTP 協(xié)議等等卖局。我們把應(yīng)用層交互的數(shù)據(jù)單元稱為報(bào)文斧蜕。
  • 傳輸層:主要任務(wù)就是負(fù)責(zé)向兩臺(tái)主機(jī)進(jìn)程之間的通信提供通用的數(shù)據(jù)傳輸服務(wù)。應(yīng)用進(jìn)程利用該服務(wù)傳送應(yīng)用層報(bào)文砚偶∨“通用的”是指并不針對(duì)某一個(gè)特定的網(wǎng)絡(luò)應(yīng)用,而是多種應(yīng)用可以使用同一個(gè)傳輸層服務(wù)染坯。
  • 網(wǎng)絡(luò)層:在計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行通信的兩個(gè)計(jì)算機(jī)之間可能會(huì)經(jīng)過(guò)很多個(gè)數(shù)據(jù)鏈路均芽,也可能還要經(jīng)過(guò)很多通信子網(wǎng)。網(wǎng)絡(luò)層的任務(wù)就是選擇合適的網(wǎng)間路由和交換結(jié)點(diǎn)单鹿, 確保數(shù)據(jù)及時(shí)傳送掀宋。在發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)層把運(yùn)輸層產(chǎn)生的報(bào)文段或用戶數(shù)據(jù)報(bào)封裝成分組和包進(jìn)行傳送仲锄。在 TCP / IP 體系結(jié)構(gòu)中劲妙,由于網(wǎng)絡(luò)層使用 IP 協(xié)議,因此分組也叫 IP 數(shù)據(jù)報(bào)儒喊,簡(jiǎn)稱數(shù)據(jù)報(bào)镣奋。
  • 數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層(data link layer)通常簡(jiǎn)稱為鏈路層。兩臺(tái)主機(jī)之間的數(shù)據(jù)傳輸怀愧,總是在一段一段的鏈路上傳送的侨颈,這就需要使用專門(mén)的鏈路層的協(xié)議富雅。在兩個(gè)相鄰節(jié)點(diǎn)之間傳送數(shù)據(jù)時(shí),數(shù)據(jù)鏈路層將網(wǎng)絡(luò)層交下來(lái)的 IP 數(shù)據(jù)報(bào)組裝成幀肛搬,在兩個(gè)相鄰節(jié)點(diǎn)間的鏈路上傳送幀没佑。每一幀包括數(shù)據(jù)和必要的控制信息(如:同步信息,地址信息温赔,差錯(cuò)控制等)蛤奢。
    在接收數(shù)據(jù)時(shí),控制信息使接收端能夠知道一個(gè)幀從哪個(gè)比特開(kāi)始和到哪個(gè)比特結(jié)束陶贼。這樣啤贩,數(shù)據(jù)鏈路層在收到一個(gè)幀后,就可從中提出數(shù)據(jù)部分拜秧,上交給網(wǎng)絡(luò)層痹屹。控制信息還使接收端能夠檢測(cè)到所收到的幀中有無(wú)差錯(cuò)枉氮。如果發(fā)現(xiàn)差錯(cuò)志衍,數(shù)據(jù)鏈路層就簡(jiǎn)單地丟棄這個(gè)出了差錯(cuò)的幀,以避免繼續(xù)在網(wǎng)絡(luò)中傳送下去白白浪費(fèi)網(wǎng)絡(luò)資源聊替。如果需要改正數(shù)據(jù)在鏈路層傳輸時(shí)出現(xiàn)差錯(cuò)(這就是說(shuō)楼肪,數(shù)據(jù)鏈路層不僅要檢錯(cuò),而且還要糾錯(cuò))惹悄,那么就要采用可靠性傳輸協(xié)議來(lái)糾正出現(xiàn)的差錯(cuò)春叫。這種方法會(huì)使鏈路層的協(xié)議復(fù)雜些。
  • 物理層:在物理層上所傳送的數(shù)據(jù)單位是比特泣港。物理層(physical layer)的作用是實(shí)現(xiàn)相鄰計(jì)算機(jī)節(jié)點(diǎn)之間比特流的透明傳送暂殖,盡可能屏蔽掉具體傳輸介質(zhì)和物理設(shè)備的差異。使其上面的數(shù)據(jù)鏈路層不必考慮網(wǎng)絡(luò)的具體傳輸介質(zhì)是什么当纱∏好浚“透明傳送比特流”表示經(jīng)實(shí)際電路傳送后的比特流沒(méi)有發(fā)生變化,對(duì)傳送的比特流來(lái)說(shuō)惫东,這個(gè)電路好像是看不見(jiàn)的莉给。

TCP/IP中數(shù)據(jù)鏈路層和物理層合并為網(wǎng)絡(luò)接口層。

2.傳輸層

2.1.UDP和TCP的特點(diǎn)

  • UDP:用戶數(shù)據(jù)報(bào)協(xié)議廉沮,無(wú)連接颓遏,盡最大可能交付,沒(méi)有擁塞控制滞时,面向報(bào)文叁幢,支持一對(duì)一,一對(duì)多坪稽,多對(duì)多的交互通信
  • TCP:傳輸控制協(xié)議曼玩,面向連接鳞骤,提供可靠支付,有流量控制黍判,擁塞控制豫尽,提供全雙工通信,面向字節(jié)流顷帖,點(diǎn)對(duì)點(diǎn)連接

2.2.TCP三次握手

A:客戶端 B:服務(wù)器端

  • B處于Listen狀態(tài)
  • A向B發(fā)送連接請(qǐng)求報(bào)文美旧,SYN=1,ACK=0贬墩,初始序號(hào)x
  • B收到連接請(qǐng)求報(bào)文榴嗅,同意連接,向A發(fā)送連接確認(rèn)報(bào)文陶舞,SYN=1嗽测,ACK=1,確認(rèn)號(hào)為x+1肿孵,選擇初始序號(hào)y
  • A收到B的連接確認(rèn)報(bào)文后唠粥,向B確認(rèn),確認(rèn)號(hào)為y+1颁井,序號(hào)為x+1
  • B收到A的確認(rèn)厅贪,連接建立

三次握手的原因:第三次握手是為了防止失效的連接請(qǐng)求發(fā)送到服務(wù)器,讓服務(wù)器錯(cuò)誤打開(kāi)鏈接雅宾。

2.3.TCP四次揮手

  • A發(fā)送連接釋放報(bào)文,F(xiàn)IN=1
  • B收到之后發(fā)出確認(rèn)葵硕,TCP屬于半關(guān)閉狀態(tài)眉抬,B能向A發(fā)送數(shù)據(jù)但是A不能向B發(fā)送數(shù)據(jù)
  • B不再需要連接時(shí),發(fā)送連接釋放報(bào)文懈凹,F(xiàn)IN=1
  • A收到后發(fā)出確認(rèn)蜀变,進(jìn)入TIME-WAIT狀態(tài),等待2 MSL(最大報(bào)文存活時(shí)間)后釋放連接介评。
  • B收到A的確認(rèn)后釋放連接库北。

四次揮手的原因:客戶端發(fā)送了FIN之后,服務(wù)器收到報(bào)文们陆,進(jìn)入CLOSE-WAIT狀態(tài)寒瓦,是為了讓服務(wù)器發(fā)送還未傳輸完畢的數(shù)據(jù),傳輸完畢后坪仇,服務(wù)器發(fā)送FIN杂腰。
TIME_WAIT:客戶端接收到服務(wù)器FIN后進(jìn)入此狀態(tài),這么做有兩個(gè)理由:

  • 確保最后一個(gè)確認(rèn)報(bào)文能夠到達(dá)椅文。如果B沒(méi)有收到A發(fā)送來(lái)的報(bào)文喂很,那么就會(huì)重新發(fā)送FIN請(qǐng)求惜颇。
  • 讓本連接持續(xù)時(shí)間內(nèi)所產(chǎn)生的所有報(bào)文都從網(wǎng)絡(luò)中消失,使得下一個(gè)新連接不會(huì)出現(xiàn)舊的連接請(qǐng)求報(bào)文

2.4. TCP協(xié)議是如何保證可靠傳輸?shù)?/h3>
  1. 數(shù)據(jù)包校驗(yàn):目的是檢測(cè)數(shù)據(jù)在傳輸過(guò)程中的任何變化少辣,若校驗(yàn)出包有錯(cuò)凌摄,則丟棄報(bào)文段并且不給出響應(yīng),這時(shí) TCP 發(fā)送數(shù)據(jù)端超時(shí)后會(huì)重發(fā)數(shù)據(jù)漓帅;
  2. 對(duì)失序數(shù)據(jù)包重排序:既然 TCP 報(bào)文段作為 IP 數(shù)據(jù)報(bào)來(lái)傳輸望伦,而 IP 數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此 TCP 報(bào)文段的到達(dá)也可能會(huì)失序煎殷。TCP 將對(duì)失序數(shù)據(jù)進(jìn)行重新排序屯伞,然后才交給應(yīng)用層;
  3. 丟棄重復(fù)數(shù)據(jù):對(duì)于重復(fù)數(shù)據(jù)豪直,能夠丟棄重復(fù)數(shù)據(jù)劣摇;
  4. 應(yīng)答機(jī)制:當(dāng) TCP 收到發(fā)自 TCP 連接另一端的數(shù)據(jù),它將發(fā)送一個(gè)確認(rèn)弓乙。這個(gè)確認(rèn)不是立即發(fā)送末融,通常將推遲幾分之一秒;
  5. 超時(shí)重發(fā):當(dāng) TCP 發(fā)出一個(gè)段后暇韧,它啟動(dòng)一個(gè)定時(shí)器勾习,等待目的端確認(rèn)收到這個(gè)報(bào)文段。如果不能及時(shí)收到一個(gè)確認(rèn)懈玻,將重發(fā)這個(gè)報(bào)文段巧婶;
  6. 流量控制:TCP 連接的每一方都有固定大小的緩沖空間。TCP 的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)涂乌,這可以防止較快主機(jī)致使較慢主機(jī)的緩沖區(qū)溢出艺栈,這就是流量控制。TCP 使用的流量控制協(xié)議是可變大小的滑動(dòng)窗口協(xié)議湾盒。

3.HTTP

3.1.HTTP狀態(tài)碼

狀態(tài)碼 類別 含義
1xx Informational(信息性狀態(tài)碼) 請(qǐng)求正在處理
2xx Success(成功狀態(tài)碼) 請(qǐng)求正常處理完畢
3xx Redirection(重定向狀態(tài)碼) 需要附加操作
4xx Client Error(客戶端錯(cuò)誤狀態(tài)碼) 服務(wù)器無(wú)法處理請(qǐng)求
5xx Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼) 服務(wù)器處理請(qǐng)求出錯(cuò)

100 Continue

200 OK
204 No Content:成功處理但是沒(méi)有返回主體數(shù)據(jù)
206 Partial Content:客戶端進(jìn)行了范圍請(qǐng)求

301 Moved Permanently:永久性重定向
302 Found:臨時(shí)性重定向
303 See Other:與302相同湿右,明確要求客戶端采用GET方法
304 Not Modified:請(qǐng)求報(bào)文包含一些條件,不滿足條件則返回
307 Temporary Redirect:與302相似罚勾,要求瀏覽器不把POST改為GET

400 Bad Request:請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤
401 Unauthorized:發(fā)送的請(qǐng)求需要認(rèn)證信息
403 Forbidden:請(qǐng)求被拒絕
404 Not Found:沒(méi)有請(qǐng)求的資源

500 Internal Server Error:服務(wù)器正在執(zhí)行請(qǐng)求時(shí)發(fā)生錯(cuò)誤
503 Service Unavailable:服務(wù)器暫時(shí)超負(fù)載或停機(jī)維護(hù)毅人,無(wú)法處理請(qǐng)求

3.2.GET/POST

GET POST
作用 獲取資源 傳輸實(shí)體主體
參數(shù) ASCII碼 標(biāo)準(zhǔn)字符集
安全 安全 不安全
冪等性* 冪等 不冪等
可緩存 不能

4.HTTPS

HTTPS=HTTP+SSL
對(duì)稱加密
非對(duì)稱加密

5.在瀏覽器中輸入一個(gè)URL會(huì)發(fā)生什么?

  • 輸入一個(gè)URL地址
  • 瀏覽器查找域名的IP地址:DNS查找
  • 建立鏈接:TCP三次握手
  • 瀏覽器給WEB服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求
  • 服務(wù)器返回瀏覽器301永久重定向響應(yīng)
  • 瀏覽器跟蹤重定向地址
  • 服務(wù)器處理請(qǐng)求:映射網(wǎng)站地址結(jié)構(gòu)的文件層次存儲(chǔ)
  • 服務(wù)器返回200和頁(yè)面HTML文件
  • 關(guān)閉TCP鏈接:TCP四次揮手
  • 瀏覽器開(kāi)始顯示HTML
  • 瀏覽器發(fā)送獲取嵌入HTML中的對(duì)象
  • 構(gòu)建渲染樹(shù)
  • 瀏覽器布局渲染

操作系統(tǒng)

算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尖殃,一起剝皮案震驚了整個(gè)濱河市丈莺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌分衫,老刑警劉巖场刑,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡牵现,警方通過(guò)查閱死者的電腦和手機(jī)铐懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瞎疼,“玉大人科乎,你說(shuō)我怎么就攤上這事≡艏保” “怎么了茅茂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)太抓。 經(jīng)常有香客問(wèn)我空闲,道長(zhǎng),這世上最難降的妖魔是什么走敌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任碴倾,我火速辦了婚禮,結(jié)果婚禮上掉丽,老公的妹妹穿的比我還像新娘跌榔。我一直安慰自己,他們只是感情好捶障,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布僧须。 她就那樣靜靜地躺著,像睡著了一般项炼。 火紅的嫁衣襯著肌膚如雪担平。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天芥挣,我揣著相機(jī)與錄音驱闷,去河邊找鬼。 笑死空免,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盆耽。 我是一名探鬼主播蹋砚,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摄杂!你這毒婦竟也來(lái)了坝咐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤析恢,失蹤者是張志新(化名)和其女友劉穎墨坚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體映挂,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泽篮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年盗尸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帽撑。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泼各,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亏拉,到底是詐尸還是另有隱情扣蜻,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布及塘,位于F島的核電站莽使,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笙僚。R本人自食惡果不足惜芳肌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望味咳。 院中可真熱鬧庇勃,春花似錦、人聲如沸槽驶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掂铐。三九已至罕拂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間全陨,已是汗流浹背爆班。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辱姨,地道東北人柿菩。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像雨涛,于是被迫代替她去往敵國(guó)和親枢舶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356