中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

這是一份收藏量超過2萬6的計(jì)算機(jī)科學(xué)學(xué)習(xí)筆記

2018-07-13    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
這是一份收藏量超過 2 萬 6、Fork 量超過 7 千的學(xué)習(xí)筆記。近日,中山大學(xué)鄭永川構(gòu)建了一個(gè)「準(zhǔn)備秋招學(xué)習(xí)筆記」的項(xiàng)目,該項(xiàng)目包含了計(jì)算機(jī)科學(xué)的大量精要知識(shí)與教程。該項(xiàng)目從基礎(chǔ)排序算法到編程理念展示了計(jì)算機(jī)科學(xué)的應(yīng)知應(yīng)會(huì),該項(xiàng)目對(duì)機(jī)器學(xué)習(xí)開發(fā)者及入門讀者也非常有用,例如 Linux 系統(tǒng)、面向?qū)ο蟮木幊獭it 工具和代碼可讀性等。這些筆記都是作者根據(jù)對(duì)各類書籍的理解,并記錄重要知識(shí)點(diǎn)而完成。

項(xiàng)目地址:https://github.com/CyC2018/Interview-Notebook

該項(xiàng)目的主體內(nèi)容可分為 9 部分,其中算法介紹了基礎(chǔ)的棧和隊(duì)列、并查集、排序和查找等,操作系統(tǒng)介紹了現(xiàn)代計(jì)算機(jī)系統(tǒng)與 Linux 系統(tǒng)。其它如介紹了設(shè)計(jì)模式和基本思想的面向?qū)ο缶幊獭⑹澜缟献钕冗M(jìn)的分布式版本控制系統(tǒng) Git、以及 Java 和編程實(shí)踐等都有涉及。

 

 

如下是該項(xiàng)目各類別的基本目錄與內(nèi)容,因?yàn)闄C(jī)器學(xué)習(xí)可能會(huì)常用到面向?qū)ο蟮木幊谭椒,因此我們(cè)诤竺婧喴榻B了這一章節(jié)中面向?qū)ο蟮幕舅枷搿?/p>

算法

劍指 Offer 題解(目錄根據(jù)原書第二版進(jìn)行編排)

Leetcode 題解(做了一個(gè)大致分類,并對(duì)每種分類題型的解題思路做了總結(jié))

算法(主要參考 Robert Sedgewick 的算法書進(jìn)行實(shí)現(xiàn),源代碼以及測(cè)試代碼可在另一個(gè)倉庫獲取)

操作系統(tǒng)

計(jì)算機(jī)操作系統(tǒng)(參考 現(xiàn)代操作系統(tǒng)、Unix 環(huán)境高級(jí)編程、深入理解計(jì)算機(jī)系統(tǒng))

Linux(參考 鳥哥的 Linux 私房菜)

網(wǎng)絡(luò)

計(jì)算機(jī)網(wǎng)絡(luò)(參考 謝希仁的計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò) 自頂向下方法、TCP/IP 詳解)

HTTP(參考 圖解 HTTP,更多的是參考網(wǎng)上的文檔,比如 MDN、維基百科等)

Socket(參考 Unix 網(wǎng)絡(luò)編程)

面向?qū)ο?/strong>

設(shè)計(jì)模式(參考 Head First 設(shè)計(jì)模式、設(shè)計(jì)模式 可復(fù)用面向?qū)ο筌浖幕A(chǔ),實(shí)現(xiàn)了 Gof 的 23 種設(shè)計(jì)模式)

面向?qū)ο笏枷?內(nèi)容包括三大原則(繼承、封裝、多態(tài))、類圖、設(shè)計(jì)原則)

數(shù)據(jù)庫

數(shù)據(jù)庫系統(tǒng)原理(參考 數(shù)據(jù)庫系統(tǒng)原理)

SQL(參考 SQL 必知必會(huì))

Leetcode-Database 題解(Leetcode 上數(shù)據(jù)庫題目的解題記錄)

MySQL(參考 高性能 MySQL)

Redis(參考 Redis 設(shè)計(jì)與實(shí)現(xiàn)、Redis 實(shí)戰(zhàn))

Java

Java 基礎(chǔ)(參考 Effective Java、Java 編程思想,也有部分內(nèi)容參考官方文檔以及 StackOverflow)

Java 虛擬機(jī)(參考 深入理解 Java 虛擬機(jī))

Java 并發(fā)(參考 Java 編程思想、深入理解 Java 虛擬機(jī))

Java 容器(包含容器源碼的分析)

Java I/O(包含 NIO 的原理以及實(shí)例)

分布式

一致性(CAP、BASE、Paxos、Raft)

分布式問題分析(分布式事務(wù)、分布式鎖、分布式 Session、負(fù)載均衡)

工具

Git(一些 Git 的使用和概念)

正則表達(dá)式(參考 正則表達(dá)式必知必會(huì))

編碼實(shí)踐

重構(gòu)(參考 重構(gòu) 改善既有代碼的設(shè)計(jì))

代碼可讀性(參考 編寫可讀代碼的藝術(shù))

代碼風(fēng)格規(guī)范(Google 開源項(xiàng)目的代碼風(fēng)格規(guī)范)

面向?qū)ο笏枷?/strong>

具體而言例如在面向?qū)ο蟮幕舅枷胫,作者介紹了封裝、繼承和多態(tài)三大特性,此外還有類圖和設(shè)計(jì)原則。這里摘取了原項(xiàng)目中展開的面向?qū)ο笕筇匦裕畔⒌膬?nèi)容請(qǐng)查看原 GitHub 項(xiàng)目。

面向?qū)ο蟮木幊淘趯?shí)現(xiàn)想法乃至系統(tǒng)的過程中都非常重要,我們不論是使用 TensorFlow 還是 PyTorch 來構(gòu)建模型都或多或少需要使用類和方法。若能了解面向?qū)ο蟮娜筇匦圆⑹褂妙惡头椒▉順?gòu)建模型,那么它們可以讓我們的機(jī)器學(xué)習(xí)代碼更加美麗迷人。

封裝

利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其構(gòu)成一個(gè)不可分割的獨(dú)立實(shí)體。數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型的內(nèi)部,盡可能地隱藏內(nèi)部的細(xì)節(jié),只保留一些對(duì)外接口使之與外部發(fā)生聯(lián)系。用戶無需知道對(duì)象內(nèi)部的細(xì)節(jié),但可以通過對(duì)象對(duì)外提供的接口來訪問該對(duì)象。

優(yōu)點(diǎn):

減少耦合:可以獨(dú)立地開發(fā)、測(cè)試、優(yōu)化、使用、理解和修改

減輕維護(hù)的負(fù)擔(dān):可以更容易被程序員理解,并且在調(diào)試的時(shí)候可以不影響其他模塊

有效地調(diào)節(jié)性能:可以通過剖析確定哪些模塊影響了系統(tǒng)的性能

提高軟件的可重用性

降低了構(gòu)建大型系統(tǒng)的風(fēng)險(xiǎn):即使整個(gè)系統(tǒng)不可用,但是這些獨(dú)立的模塊卻有可能是可用的

以下 Person 類封裝 name、gender、age 等屬性,外界只能通過 get() 方法獲取一個(gè) Person 對(duì)象的 name 屬性和 gender 屬性,而無法獲取 age 屬性,但是 age 屬性可以供 work() 方法使用。

注意到 gender 屬性使用 int 數(shù)據(jù)類型進(jìn)行存儲(chǔ),封裝使得用戶注意不到這種實(shí)現(xiàn)細(xì)節(jié)。并且在需要修改 gender 屬性使用的數(shù)據(jù)類型時(shí),也可以在不影響客戶端代碼的情況下進(jìn)行。

 

 

繼承

繼承實(shí)現(xiàn)了 IS-A 關(guān)系,例如 Cat 和 Animal 就是一種 IS-A 關(guān)系,因此 Cat 可以繼承自 Animal,從而獲得 Animal 非 private 的屬性和方法。

Cat 可以當(dāng)做 Animal 來使用,也就是說可以使用 Animal 引用 Cat 對(duì)象。父類引用指向子類對(duì)象稱為 向上轉(zhuǎn)型。

 

 

繼承應(yīng)該遵循里氏替換原則,子類對(duì)象必須能夠替換掉所有父類對(duì)象。

多態(tài)

多態(tài)分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)。編譯時(shí)多態(tài)主要指方法的重載,運(yùn)行時(shí)多態(tài)指程序中定義的對(duì)象引用所指向的具體類型在運(yùn)行期間才確定。

運(yùn)行時(shí)多態(tài)有三個(gè)條件:

繼承

覆蓋(重寫)

向上轉(zhuǎn)型

下面的代碼中,樂器類(Instrument)有兩個(gè)子類:Wind 和 Percussion,它們都覆蓋了父類的 play() 方法,并且在 main() 方法中使用父類 Instrument 來引用 Wind 和 Percussion 對(duì)象。在 Instrument 引用調(diào)用 play() 方法時(shí),會(huì)執(zhí)行實(shí)際引用對(duì)象所在類的 play() 方法,而不是 Instrument 類的方法。

 

標(biāo)簽: Google linux Mysql 代碼 開發(fā)者 數(shù)據(jù)庫 網(wǎng)絡(luò) 轉(zhuǎn)型

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:DeepMind想用IQ題測(cè)試AI的抽象思維能力,進(jìn)展還不錯(cuò)

下一篇:數(shù)字化轉(zhuǎn)型時(shí),CIO應(yīng)該避過的那些坑