寫代碼的時候大腦想的總是數據結構和演算法。大學學習 C 語言的時候, 書上看到的,有位編程大師說的就是, 編程就等於數據結構加演算法。C 語言 有數組這個數據結構。有人說不是啊不是還有鏈表,不是還有棧,不是還 有隊列 其實這 是表象,底層都是以數組的 形式組織設計的。C 語言 編程的時候 會使用到數組, ...
寫代碼的時候大腦想的總是數據結構和演算法。大學學習 C 語言的時候, 書上看到的,有位編程大師說的就是, 編程就等於數據結構加演算法。C 語言 有數組這個數據結構。有人說不是啊不是還有鏈表,不是還有棧,不是還 有隊列 其實這 是表象,底層都是以數組的 形式組織設計的。C 語言 編程的時候 會使用到數組,就像弱類 型語言 JavaScript 一樣, 都 用數組。 那什麼是演算法 又瞭解什麼是 api 關鍵字 介面 每種程式設計語言各有千秋, 都有自己的數據結構,很多原型 api 都是由一大堆工程師開發出來的。關鍵字是程式設計大師苦心經營的一些使用頻率較高的標簽,代表著不停 地含義。介面有很多種稱謂,可以說是方法,也可以說是函數。記住一點,就是不要重覆造輪子。造輪子太難, 要尊敬工程師,不能踐踏他的人格。 對於 Java 這門語言來說,總結出這幾點核心的編碼思想。數據結構一般是有 list, set,map,String,StringBuilder, 演算法其實就是考怎麼使用 if 條件判斷語句。對於數據量過大的情況,該怎麼辦肯定要遍歷迴圈才能找到數據, 這裡就會有用到 for 迴圈語句 while 迴圈語句。瞭解遞歸能使用遞歸去想象迴圈遍歷是怎麼實現的當找到數據 的時候,怎麼停止怎麼返回數據 電腦編程就是記憶體定址操作,使用變數來接收值代表值的一個標誌。 記憶體變 量會編譯成一堆二進位的記憶體地址,指向 該地址所屬的值存儲區。 數組是所有數據結構的基礎。電腦的硬體記憶體條裡面分配的就是運行記憶體。 Java 中,Java虛擬機封裝了很多 東西,有垃圾回收器,有可以運行位元組碼文件的。它 很多機器上面都增加了一層組件,對於不同的操作系統有 不同的 JVM,相同的 Java 源代碼編譯成位元組碼文件之後就可以運行 虛擬機上面。一次編譯到處運行。開發工 程師很辛苦,前人栽樹,後人乘涼。 一個人的力量有限,協同合作才能共贏。電腦里的棧記憶體是自動分配 回收的,效率很高, 但是記憶體小。棧記憶體存放的是一些基本類型的數據。堆記憶體 heap 里存放的是複雜數據 類型 (引用數據類型)。數組是以元素為單位,元素以位元組(元素第一個位元組為存儲數據的地址) 為單位,一個字 節等於 8 比特位( 10000100),這些比特位就是數據 硬體中的最終表現形式。 編程是需要很大的想象力。無論是作為哪個行業的工程師,想象力能使成為真正的工程師。 剛開始的時候, 不斷地練習,不斷地測試,不斷地記憶。當開始思考的時候,說明 成長, 當開始使用想象力的使用,說明寫 下的東西是的,無所謂好壞,都可以創造一定的價值。學習數學的學生喜歡練習,學習物理的學生喜歡想象力, 學習機械的學生喜歡測試,學習電腦的學生喜歡記憶,學習軟體工程的學生喜歡想問題,學習自動化的學生喜 歡設計,而信管的學生喜歡管理。 演算法設計需要消耗大量的腦細胞。每次寫一個演算法,有的時候需要趟很久。測試演算法太累, 調試演算法太煩。 寫代碼多了的時候,需要不斷地總結規律。最近發現對象 object 也是一種數據結構,它的表現形式就像是 map 一樣, 記憶體中都是以 key-value 的形式存 。每次寫演算法的時候都要想想是使用什麼數據結構更好地裝載數據,然後再使用什麼 if 條件判斷語句判斷數據的流向。碰 到集合一定要使用遍歷,不遍歷集合怎麼會拿到數據 ,怎麼去處理數據 當然數據量大的時候,就需要使用很多 數學的知識計算,使用很多的設計思維提高性能。 電腦思維,歐洲人的思維,美國人的思維,亞洲人的思維,中國人的思維,想問題一樣 學習編程,思維的 養成, 中國能行。