程式的定義
什麼叫程式?? 其明確的定義如下 :
1. 一行一行往下執行
2. 具人工智慧決策分析的功能 –if
3. 具有重複執行的功能 — 迴圈
純物件導向
物件導向程式有許多種, 比如C/C++, Visual C++, Java, C#, Python, PHP. 但只有Java及C#是純物件導向語言. 其他語言, 甚至是C++, 都不是純物件導向程式.
什麼是純物件導向程式呢? 如果所有程式碼都包含在class{} 之內, 才叫純物件導向程式.
Java技術
Java常見的技術如下
Java SE : Java Platform, Standard Edition : 標準開發平台, 開發applet及應用程式, 可執行於web 及桌上型電腦的程式
Java EE : Java Platform, Enterprise Edition. 廣泛使用於大型企業中, 建立伺服器端及客戶端的分散式應用程式. 如網路購物程式. Java EE以Java SE為基礎, 延伸開發出其他的API, 支援大工程, 高效能的企業軟体
Java ME : 適用於崁入式系統, 但目前都被Android打死了, 學這個好像也沒啥用處
卡式裝置 : 如辨識裝置, 手機SIM卡, 金融卡等等
Jdk版本
Jdk 版本從 1.0 ~1.4 皆由昇陽(Sun)所開發, 到了 1.5, 也就是 5.0版, 被Oracle併購. 直到2019年, 發展到了 12的版本
8.0版若未用於商業用途的話, 是免費的. 它是屬於GPL的版權. 但到了9.0以後, 開始要收費, 所以不再提供免費的 jre sdk. 因此業界現在都停留在 8.0版本.
致於日後會如何發展, 本人預測應該會全面封殺Oracle, 進而轉向 OpenJdk. OpenJDK為開放式原始碼, 可以讓使用者將java porting到他們自行選定的作業系統, 比如Linux, MacOSX.
Java編譯流程
Java原始碼完成後按 F6執行, 就會產生一連串的動作. 首先啟動javac 編譯程式, 將原始碼編譯成 .class檔, 然後再啟動 java 虛擬機器執行 .class檔.
“java” 這支程式又稱為 Virtual Machine 虛擬機器. 每個作業系統都有自已的VM. 如此就可以達到真正的跨平台. 也就是說, 程式碼只要在某個系統上編譯一次, 其產生的class/jar就可以通用於不同的作業系統, 而且是不需再針對不同的作業系統重新編譯.
物件導向
OOP(Object-Oriented Programming) 於1967年的SIMULA-67程式語言掘起, 後來變成了一門學術科目, 並由C++, Java, Visual C#等實作其理論
在1967年代, 電腦還算是剛起步新產品, Ram是非常昂貴的產品. 然而物件導向理論偏偏必需消耗大量的記憶体才可實現. 所以早期物件導向只是一門非常冷門的理論, 它只是某些人為了滿足研究的興趣所產生出來的垃圾.
到了近代, Ram不但進化到了一支就1G, 甚至到現在的一支32G, 普通主機板還可以一次插四支Ram. 這下物件導向就紅了. 而且要是沒有物件導向理論, 現在的視窗程式壓根兒也不可能實作出來.
OOP不同於早期的程序化語言, 主要的特性如下
模組化 : 將大工程的程式碼分成小模組, 易於分工
資訊隱藏 : 將重要的資訊隱藏, 不讓外界得知
重複使用 : 相同的功能的程式碼不需重複撰寫
可任意插拔及易於除錯 : 像樂高一樣可隨意組合, 且容易找出錯誤