Java數據結構和算法,java數據結構( 二 )


以Web開發為例,學習Java的過程大概分為三個階段,分別是編程語言基礎、Web開發基礎、分布式開發和框架開發,通常情況下在編程基礎學習完之后就可以學習算法和數據結構了 。Java編程基礎包括掌握面向對象編程過程、數組、流程控制、封裝、繼承、多態、異常處理、IO、集合、多線程以及網絡編程等內容 。算法設計的學習往往從排序開始,然后是遞歸求解、概率分析、隨機算法、數據結構(棧、隊列、鏈表、圖、樹等)、貪心算法、核算法、圖算法等內容,算法的學習需要一個系統的過程,同時要結合實驗進行 。
其實,算法的學習也可以先于編程語言的學習,不少算法設計的教材會提供基于算法的偽代碼的實現過程,對于沒有編程基礎的人來說也能夠了解算法的實現過程,看兩個例子:算法設計的基礎是數學,所以在學習算法之前要對高等數學、線性代數、概率論和離散數學有一定的了解,因此數學對于計算機專業來說還是非常重要的,如果要想在軟件研發這條路上走的更遠,一定要有一個扎實的數學基礎 。
對于研發級程序員來說,幾乎每天都要跟算法打交道,但是對于應用級程序員來說,與算法打交道的時候往往并不多,對于學習者來說要根據自身的知識結構來選擇發展方向,做應用級研發也是可以的 。我的主要研究方向是大數據和人工智能,目前也是一名計算機專業的研究生導師,我會陸續在頭條寫一些關于互聯網、大數據、人工智能等方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲 。
面試一個5年經驗的java,不知數據結構,卻大談分布式,這樣的候選人能要嗎?

Java數據結構和算法,java數據結構


我估計你是問了人家 jdk各種數據結構底層實現原理,其實我一直很納悶啊,知道底層實現原理 這當然很OK 很加分,但若是不是那么知道,那又怎樣呢?人家知道哪些數據結構適合哪些場景并能熟練使用它們,這...不夠么?對你們公司的用人需求不夠么?難道你是指望他給你們公司創造一個新的數據結構?又或者覺得jdk已經實現的數據結構性能遇到瓶頸 指望求職者給你再實現一遍一模一樣但性能比jdk提供的還優秀的數據結構啊? 。
普通三本大四java準畢業生,目前應該先把數據結構這些鞏固一下?還是學一下主流框架?
目前大學里面所學習的技術還不能滿足企業開發的需求的,隨意對于本科大四Java準畢業生來說不是先學習數據結構鞏固一下還是學習一下主流框架,建議還是從Java基礎開始穩扎穩打學習起來 。如果說自己覺得大學四年自己學的還不錯的話,可以看看網上的招聘需求若自己覺得都學到的話,可以直接投簡歷面試看看 。如果面試不行,趕緊從頭開始學習吧 。
面試問:HashSet底層為什么要用HashMap?為什么要用hash函數?有什么好處?不用HashMap有什么其他方式實現set?你有見過什么其他的實現嗎?HashMap混合使用多種數據結構(數組、鏈表、紅黑樹)crud效率高,最快的情況下時間復雜度O(1),最慢也就O(n),又能保證key的唯一 。

推薦閱讀