首頁>Club>
我是軟體工程學生,學的java方向,一直是在自學,沒有開發經驗,很擔心面試的時候會吃虧,哪些東西可以在面試的時候加分?怎樣寫專案積累開發經驗?
5
回覆列表
  • 1 # 守住l堅持

    對於Java方向的學生面試,有哪些方向可以加分呢?

    Java是一門面向物件程式語言,須在理論知識和實戰中有著紮實的基礎。而這也是在面試中面試官們經常會問到的,例如:介紹一下java的集合框架?hahtable與concurrenthashmap的區別?以及aqs的原理等等。

    一、面試禮儀

    著裝得體、注意禮貌、認真聆聽、體態端莊

    二、面試中要注意的問題

    1.提前瞭解公司背景

    態度很重要,在面試前做足應聘公司的功課,會給面試加分不少

    2.蒐集該公司的面試經驗

    一般來講,在網上應聘公司的面試經驗都能被搜到。提前蒐集面試分享,在自己面試時可以做到心中有數,不會太怯場

    3.自我介紹

    面試的時候一般都會讓你做一個自我介紹,與眾不同的自我介紹,會讓求職者在面試官面前留下深刻的印象。

    4.一定要有自己的實際專案經驗

    簡要說一下你自己做過的自認為很不錯的專案,你在專案中的職責是否能夠勝任之前的任務安排,在專案中遇到的問題,你是怎樣解決的(一般這樣的問題,可以說是自己解決,但是要講明解決過程一定要突出解決思路的靈活,也可以回答與同事討論解決,這樣可以讓面試官覺察到自己善於利用團隊資源,會給自己團隊意識加分。)

    5.可以適當渲染,但是不要誇大其詞

    面試過程中最忌諱的就是誇誇其談,但是一到實際細節都不知所云,在技術總監面前,其實你吹牛或者是真的會面試官們是一目瞭然。

    6.臨陣磨槍

    面試前如果準備的不是很充足,還有很多沒有來得及試驗的先放一放,可以網上收集一些經典的面試題,臨時背背,或者在去面試的路上看兩眼,說不定哪一眼就蒙上了,還可以起到緩解緊張的作用,當然想要拿到高薪是要付出努力的。

  • 2 # 煩人的小可愛

    我推薦一些面試題把!

    面試題一

    為什麼使用ConcurrentHashMap而不是HashMap或Hashtable?

    HashMap的缺點:主要是多執行緒同時put時,如果同時觸發了rehash操作,會導致HashMap中的連結串列中出現迴圈節點,進而使得後面get的時候,會死迴圈,CPU達到100%,所以在併發情況下不能使用HashMap。讓HashMap同步:Map m = Collections.synchronizeMap(hashMap);而Hashtable雖然是同步的,使用synchronized來保證執行緒安全,但線上程競爭激烈的情況下HashTable的效率非常低下。因為當一個執行緒訪問HashTable的同步方法時,其他執行緒訪問HashTable的同步方法時,可能會進入阻塞或輪詢狀態。如執行緒1使用put進行新增元素,執行緒2不但不能使用put方法新增元素,並且也不能使用get方法來獲取元素,所以競爭越激烈效率越低。

    ConcurrentHashMap的原理:

    HashTable容器在競爭激烈的併發環境下表現出效率低下的原因在於所有訪問HashTable的執行緒都必須競爭同一把鎖,那假如容器裡有多把鎖,每一把鎖用於鎖容器其中一部分資料,那麼當多執行緒訪問容器裡不同資料段的資料時,執行緒間就不會存在鎖競爭,從而可以有效的提高併發訪問效率,這就是ConcurrentHashMap所使用的鎖分段技術,首先將資料分成一段一段的儲存,然後給每一段資料配一把鎖,當一個執行緒佔用鎖訪問其中一個段資料的時候,其他段的資料也能被其他執行緒訪問。

    ConcurrentHashMap的結構:

    ConcurrentHashMap是由Segment陣列結構和HashEntry陣列結構組成。Segment是一種可重入互斥鎖ReentrantLock,在ConcurrentHashMap裡扮演鎖的角色,HashEntry則用於儲存鍵值對資料。一個ConcurrentHashMap裡包含一個Segment陣列,Segment的結構和HashMap類似,是一種陣列和連結串列結構, 一個Segment裡包含一個HashEntry陣列,每個HashEntry是一個連結串列結構的元素,當對某個HashEntry陣列的資料進行修改時,必須首先獲得它對應的Segment鎖。

    ConcurrentHashMap的構造、get、put操作:

    建構函式:傳入引數分別為 1、初始容量,預設16 2、裝載因子 裝載因子用於rehash的判定,就是當ConcurrentHashMap中的元素大於裝載因子*最大容量時進行擴容,預設0.75 3、併發級別 這個值用來確定Segment的個數,Segment的個數是大於等於concurrencyLevel的第一個2的n次方的數。比如,如果concurrencyLevel為12,13,14,15,16這些數,則Segment的數目為16(2的4次方)。預設值為static final int DEFAULT_CONCURRENCY_LEVEL = 16;。理想情況下ConcurrentHashMap的真正的併發訪問量能夠達到concurrencyLevel,因為有concurrencyLevel個Segment,假如有concurrencyLevel個執行緒需要訪問Map,並且需要訪問的資料都恰好分別落在不同的Segment中,則這些執行緒能夠無競爭地自由訪問(因為他們不需要競爭同一把鎖),達到同時訪問的效果。這也是為什麼這個引數起名為“併發級別”的原因。

    面試題二

    HashMap的工作原理

    HashMap維護了一個Entry陣列,Entry內部類有key,value,hash和next四個欄位,其中next也是一個Entry型別。可以將Entry陣列理解為一個個的雜湊桶。每一個桶實際上是一個單鏈表。當執行put操作時,會根據key的hashcode定位到相應的桶。遍歷單鏈表檢查該key是否已經存在,如果存在,覆蓋該value,反之,新建一個新的Entry,並放在單鏈表的頭部。當透過傳遞key呼叫get方法時,它再次使用key.hashCode()來找到相應的雜湊桶,然後使用key.equals()方法找出單鏈表中正確的Entry,然後返回它的值。

    面試題三

    Map、Set、List、Queue、Stack的特點與用法

    Set集合類似於一個罐子,"丟進"Set集合裡的多個物件之間沒有明顯的順序。 List集合代表元素有序、可重複的集合,集合中每個元素都有其對應的順序索引。 Stack是Vector提供的一個子類,用於模擬"棧"這種資料結構(LIFO後進先出) Queue用於模擬"佇列"這種資料結構(先進先出 FIFO)。 Map用於儲存具有"對映關係"的資料,因此Map集合裡儲存著兩組值。

  • 3 # 大資料技術和人工智慧

    對於應屆生來說,考察的重點都是基礎,對於每一個知識點都要做到知其然知其所以然,不必要太擔心專案經驗。

    Java方向需要學習的知識點有:基礎語法、IO、併發、集合、多執行緒、JVM、GC、Spring等等,對於這些知識,需要能夠熟練會用,知道它們的實現原理,並且都動手實踐過。

  • 中秋節和大豐收的關聯?
  • 智慧馬桶和智慧馬桶蓋到底有什麼區別?哪個更值得買呢?