【程式設計素質】程式設計思想總結
1,資料結構和演算法
【資料結構】排序演算法
【資料結構】查詢
【資料結構】樹
【資料結構】圖
【資料結構】陣列
【資料結構】佇列和棧
【資料結構】線性表:順序表、單連結串列
【java學習】String字串
【演算法】電梯排程演算法/磁碟掃描演算法
【演算法】劍指offer
【資料結構】斐波那契數列(Fibonacci sequence,黃金分割數列,兔子數列)
2,設計模式
【程式設計素質】多執行緒程式設計之設計模式
複合模式:三層架構、MVC、MVP、MVVM
3,程式設計方法
3.1 函數語言程式設計(functional programming)
3.1.1 概念
是結構化程式設計的一種。將電腦運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是λ演算(lambda calculus)。
java8引入了函數語言程式設計概念。
3.1.2 與OOP對比
物件與物件之間的關係是物件導向程式設計首要考慮的問題,而在函數語言程式設計中,所有的資料都是不可變的,不同的函式之間通過資料流來交換資訊。
3.1.3 優點
在函數語言程式設計中,由於資料全部都是不可變的,所以沒有併發程式設計的問題,是多執行緒安全的。
程式碼可讀性更強。
3.1.4 缺點
由於所有的資料都是不可變的,所以所有的變數在程式執行期間都是一直存在的,非常佔用執行資源。
雖然現代的函數語言程式設計語言使用了很多技巧比如惰性計算等來優化執行速度,但是始終無法與物件導向的程式相比,當然物件導向程式的速度也不夠快。
3.2 物件導向程式設計(Object-oriented programming,縮寫:OOP)
3.2.1 概念
具有物件概念的程式程式設計範型,同時也是一種程式開發的方法。它可能包含資料、屬性、程式碼與方法。物件則指的是類的例項。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性,物件裡的程式可以訪問及經常修改物件相關連的資料。在物件導向程式程式設計裡,計算機程式會被設計成彼此相關的物件。
3.2.2 優點
系統更靈活、更容易擴充套件,而且成本較低。
3.2.3 缺點
物件導向程式設計以資料為核心,所以在多執行緒併發程式設計中,多個執行緒同時運算元據的時候可能會導致資料修改的不確定性。
物件導向雖然開發效率高但是程式碼的執行效率比起程式導向要低很多。
3.2.4 物件導向三大特性:封裝,繼承,多型
3.3 面向方面程式設計(Aspected Oriented Programming,縮寫:AOP)
3.3.1 概念
偏重業務處理過程的某個步驟或階段,強調降低模組之間的耦合度,使程式碼擁有更好的移植性。
3.3.2 特點
AOP 的一個很重要的特點是原始碼無關性,也就是說如果我們的系統中引用了 AOP 元件,即使我們把該元件去掉,系統程式碼也應該能夠編譯通過。要實現這一點,可以使用動態 proxy 模式。
3.3.3 優點
i>更易模組化
AOP將程式分解成各個方面或者說關注點。這使得可以模組化,相當橫向上分切了。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務、安全、日誌等橫切關注
ii>AOP有助於提高系統可維護性
3.3.4 實現方式
AOP是一種設計模式,Spring提供了一種實現。
Spring 1.2版本中通過ProxyFactoryBean來實現aop,即通過動態代理來實現的,Aspect必須繼承MethodBeforeAdvice,MethodAfterAdvice等。
Spring 2.0 AOP需要改的是FBI 這個類,而且它也不需要再實現某些介面
三使用標註(@AspectJ)實現AOP
3.3.5 與OOP對比
也可以說 AOP 是面向業務中的動詞領域, OOP 面向名詞領域。
核心業務還是要OOP來發揮作用,與AOP的側重點不一樣,前者有種縱向抽象的感覺,後者則是橫向抽象的感覺, AOP只是OOP的補充,無替代關係。
4,Java編碼約定
相關文章
- MR核心程式設計思想總結程式設計
- 程式設計思想 面向切面程式設計程式設計
- 【程式設計素質】Java編碼約定程式設計Java
- 程式設計思想之冪等性 | 程式設計之道程式設計
- 程式設計感悟總結一程式設計
- Nio程式設計模型總結程式設計模型
- 設計模式--原型模式及其程式設計思想設計模式原型程式設計
- 程式設計中的自頂向下設計思想程式設計
- 計算機程式設計心得總結計算機程式設計
- JAVA語言程式設計思想Java程式設計
- 程式設計思想 物件導向程式設計物件
- PROG2007程式設計總結程式設計
- Javascript非同步程式設計總結JavaScript非同步程式設計
- 程式設計師的 2021 年總結程式設計師
- JAVA 程式設計思想 第13章 字串Java程式設計字串
- Java 程式設計思想筆記:Learn 10Java程式設計筆記
- 談談一個程式設計師本該具備的素質程式設計師
- 程式設計師修煉之道總結3程式設計師
- 程式設計師修煉之道總結1程式設計師
- Flutter 中的非同步程式設計總結Flutter非同步程式設計
- C 語言程式設計習慣總結程式設計
- Java 併發程式設計學習總結Java程式設計
- 一個程式設計師的2021總結程式設計師
- 【Javascript】DOM程式設計學習總結篇JavaScript程式設計
- Java程式設計基礎29——JavaSE總結Java程式設計
- 響應式程式設計機制總結程式設計
- 高質量C/C++程式設計指南總結(二)—— 檔案版式C++程式設計
- 高質量C/C++程式設計指南總結(三)—— 命名規則C++程式設計
- 《Java程式設計思想》讀書筆記一Java程式設計筆記
- java程式設計思想第一章Java程式設計
- 讀書筆記-Java程式設計思想-03筆記Java程式設計
- 《Java程式設計思想》筆記08——持有物件Java程式設計筆記物件
- 一個程式設計師 && 作者 && 設計師的 2018 年終總結程式設計師
- 程式設計技巧整理:Java程式效能最佳化總結!程式設計Java
- 程式設計師的職業素養(一)程式設計師
- 理解結對程式設計程式設計
- 「完結」總結12大CNN主流模型架構設計思想CNN模型架構
- 00後程式設計師,2023年終總結程式設計師