《計算機基礎》:培訓班不會教的計算機基礎知識。

一切不可能,終將化爲尋常。
喜歡一我的就說喜歡,心存感恩就說謝謝;說反話並不會引發別人的關注,只會把人越推越遠。
本文已收入至個人 GitHub倉庫,歡迎Star: github.com/JavaKongHao,裏面也有我我的聯繫方式有什麼問題也能夠直接找我。

計算機的三個根本性基礎

1)計算機是執行輸入、運算、輸出的機器
2)程序是指令和數據的集合 
3)計算機的處理方式有時與人們的思惟習慣不一樣
複製代碼

計算機技術進步突飛猛進,進步的方向就是爲了更好的貼合人類,爲人類服務。這就須要他的思惟習慣有更好的進步,這是如此,計算機還有很大的進步空間。(面向對象變成,是貼合人類的一種體現) 不管是剛入行的技術人員,仍是有資歷的老工程師,都應該由衷地歡迎技術的進化,坦率地接受新技術。git

CPU

機器語言就是由 二進制數字構成的程序(.class文件),CPU 能夠直接對其解釋、執行。

1.CPU 中的標誌寄存器(Flags Register)有什麼做用? Flag的本意是「旗子」,這裏引伸爲「標誌」。一旦執行了算術運算、邏輯運算、比較運算等指令後,標誌寄存器並不會存放運算結果的值,而是會把運算後的某些狀態存儲起來,例如運算結果是否爲0、是否產生了 負數、是否有溢出(Overflow)等。程序員

2.CPU內部有存儲數據的地方。這種存儲數據的地方叫做「寄存器」。雖然也叫寄存器,可是與I/O的寄存器不一樣,CPU的寄存器不只能存儲數據,還具有對數據進行運算的能力。(I/O的寄儲器不能存取數據github

1.控制器 控制單元主要由時序控制和指令控制等組成,其中指令控 制協調指令譯碼器,完成讀指令、分析指令、交給運算器執行指令等操做。指令寄存器中存儲着指令集。面試

2.運算器 運算器的核心是邏輯運算單元,即 ALU,可以執行算術運算或邏輯運算等各類 命令,運算單元會從寄存器中提取或存儲數據。算法

3.寄存器 基於執行指令和熱點數據的時間局部性和 空間局部性,CPU 緩存部分指令和數據,以提高性能。但因爲 CPU 內部空間狹小且 結構複雜,高速緩存遠小於內存空間。數據庫

內存

越往 CPU 核心靠近,存儲性能越高,但成本也更高。越往下,存 儲越便宜、速度越慢,但容量更大。

雲端存儲使得應用更加安全,易於維護,不須要再去關心應用架構以及數據備份容災的問題。編程

主存儲器:CPU可以直接訪問的存儲器爲主存儲器,用以存放當前運行的程序和數據。因爲它設在主機內部,又稱內存儲器,簡稱內存或主存。緩存

輔助存儲器:爲了解決主存容量不足而設置的存儲器,用以存放當前不參加運行的程序和數據。當須要運行放在輔存中的程序時,須要將所需內容成批地調入內存供CPU使用,CPU不能直接訪問輔存。因爲輔存是外部設備的一種,因此又稱爲外存儲器,簡稱外存。安全

高速緩衝存儲器:是一種介於主存與CPU之間,用於解決CPU與主存間速度匹配問題的高速小容量的存儲器。它被用於存放CPU當即要運行或剛使用過的程序和數據。網絡

程序像喝水同樣流動着

事件驅動是什麼:用戶的操做等產生事件後,由事件決定程序的流程。Windows 應用程序的運行就是由事件驅動的。例如,選擇「打開文件」菜單項就能打開一個窗口,在裏面能夠指定要打開文件的名稱和存儲位置。之因此可以這樣是由於一旦觸發了「選中了菜單項」這個事件,程序的流程就相應地流轉到了處理打開窗口的那部分。

CPU 中有各類各樣的各司其職的寄存器。其中有一個被稱爲 PC(Program Counter,程序計數器)的寄存器,負責存儲內存地址,該地址指向下一條即將執行的指令。每解釋執行完一條指令,PC寄存器的值就會自動被更新爲下一條指令的地址。

(流程圖的重要性,寫代碼前應該先出方案畫流程圖)

推薦一款工具:

和算法成爲好朋友

「哨兵」指的是一種含有特殊值的數據,可用於標識數據的結尾等。字符串的末尾用0表示,鏈表的末尾用-1表示,像這 種特殊的數據就是哨兵。

算法就是「把解決問題的步驟無一遺漏地用「編程語言表達」,算法就變成了程序。且那就是「步驟必須是明確的而且步驟數必須是有限的」。 (本書做者推薦:能夠做爲算法辭典使用的書有《算法技術手冊》)

最後介紹最爲重要的一點,那就是思考算法的時候,要先在紙上 用文字或圖表描述出解決問題的步驟,而不要馬上開始編寫代碼。 (算法推薦:LeetCode)

tips:若是說編程語言是程序員的外功,那麼算法就是內功。
複製代碼

和數據結構成爲好朋友

注:(後面會單獨開博,點擊關注,第一時間閱讀)

成爲會使用面向對象編程的程序員吧

OOP 是 Object Oriented Programming(面向對象 編程)的縮略語。

面向對象編程(OOP,Object Oriented Programming)是一種編寫程 序的方法,旨在提高開發大型程序的效率,使程序易於維護 A。。其中所使用的主要編程技巧有繼承、封裝、多態三種。

面向對象與面向過程區別:

舉例說明:面向過程和麪向對象

有一天你想吃魚香肉絲了,怎麼辦呢?你有兩個選擇

一、本身買材料,肉,魚香肉絲調料,蒜薹,胡蘿蔔等等而後切菜切肉,開炒,盛到盤子裏。

二、去飯店,張開嘴:老闆!來一份魚香肉絲!

看出來區別了嗎?這就是1是面向過程,2是面向對象。

面向過程

優勢:性能比面向對象好,由於類調用時須要實例化,開銷比較大,比較消耗資源。

缺點:不易維護、不易複用、不易擴展.

面向對象

優勢:易維護、易複用、易擴展,因爲面向對象有封裝、繼承、多態性的特性,能夠設計出低耦合的系統,使系統 更加靈活、更加易於維護。

缺點:性能比面向過程差

tips:「小步快跑,快速迭代」——互聯網生存法測。面向對象帶來的易擴展、易維護、易複用等優點自然知足這條法則。
複製代碼

一用就會的數據庫

鍵和索引的區別?

鍵用於設定表和表之間的關係(Relationship),而索引是提高數據檢索速度的機制。 其上每一個值都可以惟一標識一條記錄的字段稱爲主鍵。爲了在表和表之間創建關係而在表中添加的、其餘表主鍵的字段稱爲外鍵。而索引是與鍵無關的機制。

注:這個確定要出專題了,從JDBC入門到SQL優化?五大範式?分庫分表?事務?後面再整理吧。

XML到底是什麼

HTML 是用於編寫網頁的標記語言。XML 是用於定義任意標記語言的元語言。 一般把用於定義新語言的語言稱做元語言。經過使用XML能夠定義出各類各樣的新語言。

xml是標記語言,是可擴展的標記語言。支持自定義標籤
複製代碼

se負責監管計算機系統的構建

軟件開發過程的模型有「瀑布模型」「原型模 型」「螺旋模型」等。 「瀑布模型」

在瀑布模型中,每完成一個階段,都要書寫文檔(報告)並進行審 核。進行審覈時還須要召開會議,在會上由SE爲開發團隊的成員、上司以及客戶講解文檔的內容。

瀑布模型優勢:

一、讓軟件開發過程有序可控,可追溯。(文檔的沉澱就是團隊的沉澱)

二、讓分工明確化,讓協做變成可能。

瀑布模型的六個階段對應如今的:項目經理,產品經理,架構師,軟件工程師,測試工程師、運維工程師。

三、質量有保障

撈兩下

《網絡基礎》:計算機網絡基礎常見面試問題大全,這裏涵蓋了常見的網絡基礎相關面試題。網絡七層模型,握手揮手詳解,http/tcp/socket鏈接,tcp/ip協議簇,輸入xxURL的訪問過程等等諸如此類的常見面試題作了全面的整理。

《空號》:聊聊我在阿里外包3個月學到了什麼。,天天和正式員工廝混在一塊兒,這是我3個月的所見所聞所想。我經常在思考和他們的差距在哪裏,之後也會不定時的繼續發我的淺見。還有書單什麼的之後再說吧


本文志在提高剛入門同窗對計算機的宏觀認識,以及標準化開發流程的體驗。

打上註釋的,後面會以專題形式單獨開博,屆時會把連接補進來。

若是以爲有用,點個讚唄,由於你的鼓勵是我寫做的最大動力!

聯繫我/公衆號

空號 | 文 【原創】【轉載請聯繫本人】 若是本篇博客有任何錯誤,請批評指教,不勝感激 !本文已收入至個人 GitHub倉庫,歡迎Star: github.com/JavaKongHao,裏面也有我我的聯繫方式有什麼問題也能夠直接找我。

相關文章
相關標籤/搜索