標籤:
如果程式的資料包涵代碼和資料兩部分:
面向過程編程 就是以代碼為主,用代碼控制資料,描述解決問題的方法。
面向過程編程 就是以抽象資料為主,所有處理都圍繞資料展開,依賴抽象編程
程式設計語言知識點:
1 . 流程式控制制:使用if...else , while, break,continue 代替 過於強大,結構差,不便閱讀的goto.
for, switch,foreach 則可讓代碼更簡潔,清晰。
2. 函數:隨著程式碼變得越來越龐大,把握全域逐漸層得困難起來,同時有可能需要多次用到非常相似的操作,於是誕生了函數 。
把代碼的一部分視作一個有機整體,切分出去並為之命名的程式設計機制(便於理解和可重複使用,早期有子程式的稱謂)。棧。
3. 錯誤處理:
- 用傳回值及引用參數傳達出錯資訊。 C,GO採用這一模式
可追加錯誤類型和可主動觸發錯誤的異常處理機制。
- C++ ,JAVA,C# 使用throw , try ... catch
- JAVA,C# 中 可以使用try ... catch ... finally。使用finally,出口只有一個,實現成對操作的無遺漏執行。
- JAVA 採用檢查型異常,要明確聲明可能跑出的異常,因為"The Trouble with Checked Exceptions",所以C#未引人。
- swift此前採用c的模式,2015開發人員大會上提到將引入異常處理機制。
4. 命名和範圍(動態範圍、全域範圍、靜態範圍),命名空間。public private protected internal
5. 類型:資料如何讀取,需要依賴人們為資料附加的類型資訊。
- CPU對運算元的存放方式:Little_endian(從低位元組到高位元組)和Big_endian(從高位元組到低位元組)。
- 以2進位表示10進位,約3.32(log10 / log2)個bit位表示一位。
- 整形:最高位為符號位。負數採用補碼的方式,從而將減法轉變為加法。(補碼:除符號位外 按位取反 再 加 1 )
- 浮點:
以32位為例:
最高位為符號位,
之後8位是表示位元的指數部分(0~255,減去127,得到-127~128,-127表下溢出:0,128表上溢出:無窮小或無窮大,剩下的為位元)
剩下23位為尾數部分,表示小數點以下的部分(通過移動小數點使整數部分變成1後的小數部分)。
如: 1.75 二進位:1.11 ,無需移位, 符號位:0,指數部分 0111,1111(127),尾數部分:110,0000,0000,0000,0000(0.5 + 0.25)
3.875 二進位:1.1111 * 2, 符號位:0,指數部分 1000,0000(128右移一位),尾數部分:111,1000,0000,0000,0000
範圍 :-126 / 3.32 ~ 127 / 3.32 約-38~38
精確度:23/ 3.32 ,6~7位有效數字
64位則符號位為11位
範圍 :-1022 / 3.32 ~ 1023 / 3.32 約-308~308
精確度:52/ 3.32 ,15~16位有效數字
自訂類型:結構,聯合,枚舉,類。使用基礎資料型別 (Elementary Data Type)通過組合定義新的類型。
存取控制:功能上實現封裝,代碼上解耦
抽象類別、介面
泛型、模版
動態類型
6. 容器(資料結構):
7. 對象與類
物件導向編程裡的 對象是現實世界的模型。歸納並建立模型的方式多種多樣,語言不同,選擇也不同,類是最方便的,卻不是必須的。
JS中通過將函數和變數放入散列,以實現將相關聯的函數、變數集中到一起的功能。
函數式語言裡,則會採用閉包的形式。
perl 使用包的形式
8.繼承
採用封裝來建立抽象資料模型,但僅僅只有封裝還不夠,事物之間是普遍聯絡的,還需要繼承和多態來描述他們之間的關係
繼承需要謹慎使用,否則代碼可讀性降低,而且擴充困難。遵守 裡氏替換原則
C++為多重繼承,多重繼承使用方便,但會產生衝突,JAVA的解決辦法就是只容許單繼承,用介面實現多重繼承的功能。同時單繼承便於統一管理記憶體。
9. 抽象類別,介面
抽象類別可以有一個抽象方法
而介面則所有方法都是抽象方法
----------------
程式語言是為了尋求便捷而誕生的,正是因為對便捷的不同需求。 才促成了各種程式語言的發明。
語言設計的取捨:
易用性與功能,安全性與效率,穩定性與可擴充性。
C:結構化編程 + 高效 + 功能強大 + 易於學習
誕生於1972年
the c programming language 1978由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言
1989.12 第一個完整的C語言標準,簡稱“C89”,不過人們也習慣稱其為“ANSI C”。
最新標準在2011年12月8日發布,稱為ISO/IEC9899: 2011,簡稱為“C11”。
C++, 1979年發明,最初稱“帶類的C”,1983年正式更名為C++
重視代碼執行效率,語言規範相應的非常複雜。
JAVA 1991年構想,92年初步實現,95年公開發布。
目標是實現體繫結構中立,而全球資訊網的發展成就了JAVA,因為全球資訊網需要可移植程式。JAVA對網路編程的意義就如同C對系統編程的意義一樣:都是改變世界的革命性力量。
java,android學習《1》概述