本科小白初次面試被吊打嚇哭,問心理陰影面積有多大

今天參加了上海一家公司面試,面試Java開發實習。公司規模不大,但是氛圍很好。面試官看出我是個小白,也沒有嘲笑我,還很耐心地給我講題,倒是本人自慚形穢,自己把自己嚇哭了。

和麪試官聊天氛圍很輕鬆,面試官特別友好,總是面帶笑容。

本篇總結是針對我個人情況的,並不是所有人都適用,面試官相當靈活,面試過程我感覺他就是久經沙場的資深程序員了,感覺他什麼都會。我回來立馬就查了下百度,記錄一下我不會和沒答好的題目。以下就是我的心裏陰影面積的大小了。

面試官先問了問我的大學課程,問到了數據結構。數據結構我大二時候上的課,我就悄悄地說,可能記不清了。果然二叉樹的作用我就沒答上。

  1. 二叉樹的作用?
    熱心網友資料:https://www.cnblogs.com/wwjchina/p/7749556.html
    二叉樹是一種重要的數據結構,與數組、向量、鏈表都是一種順序容器,它們提供了按位置訪問數據的手段。但是有一個缺點,它們都是按照位置來確定數據,想要通過值來獲取數據,只能通過遍歷的方式。而二叉樹在很大程度上解決了這個缺點,二叉樹是按值來保存元素,也按值來訪問元素

    二叉樹由一個個節點組成,一個節點最多隻能有兩個子節點,從根節點開始左右擴散,分左子節點和右子節點,向下一直分支。

    許多實際問題抽象出來的數據結構往往是二叉樹的形式,即使是一般的樹也能簡單地轉換爲二叉樹,而且二叉樹的存儲結構及其算法都較爲簡單,因此二叉樹顯得特別重要。二叉樹是遞歸定義的。

接着問到了我筆試題上面的一個題,因爲沒掌握,本人答得不是特別精確,弱化了單例模式的適用場景。面試官問到我的時候,我吧啦吧啦講了一堆不沾邊的。

  1. 單例模式適用於什麼?
    熱心網友提供的資料:https://www.cnblogs.com/restartyang/articles/7770856.html
    創建單一對象,提高效率的一種模式。
    適用場景:
    單例模式只允許創建一個對象,因此節省內存,加快對象訪問速度,因此對象需要被公用的場合適合使用,如多個模塊使用同一個數據源連接對象等等。

    一種比較常見的設計模式,三個方面的作用:
    1.控制資源的使用,通過線程同步來控制資源的併發訪問;
    2.控制實例產生的數量,達到節約資源的目的;
    3.作爲通信媒介使用,也就是數據共享,它可以在不建立直接關聯的條件下,讓多個不相關的兩個線程或者進程之間實現通信。

面試官是真的很友好,我沒答上,他還會給我講解作用是什麼,爲什麼使用這個。接下來談了談算法。最後問到了我的項目。項目中有一個前後端分離的學習項目,面試官就按照那個項目問了我sql、mybatis、vue、Git一些知識。

  1. Vue和Jquery的區別
    熱心網友的博客地址:https://blog.csdn.net/weixin_38639882/article/details/84963311
    Vue是數據驅動Dom,Jquery是Dom驅動數據。
    jQuery是使用選擇器()選取DOM對象,對其進行賦值、取值、事件綁定等操作,其實和原生的HTML的區別只在於可以更方便的選取和操作DOM對象,而數據和界面是在一起的。

    改變一:有了前端工程師,而不是隨便一個會點html的美工就能跟你搶飯碗!
    改變二:服務端渲染VS客戶端渲染
    改變三:渲染優雅,代碼易維護
    改變四:跨平臺

  2. mybatis中在xml文件裏寫sql時#和 $ 的區別。
    優先使用#{paramName,jdbcType=VARCHAR} 寫法,除了可以防止sql注入以外,它還能在參數裏含有單引號的時候自動轉義
    ${paramName} 由於是 類似於拼接sql的寫法,不具備此功能。

  3. Git如何合併分支?
    熱心網友資料:Git-分支的新建與合併

  • 一個簡單提交歷史

現在,你已經決定要解決你的公司使用的問題追蹤系統中的 #53 問題。 想要新建一個分支並同時切換到那個分支上,你可以運行一個帶有 -b 參數的 git checkout 命令

  • 帶有 -b 參數的 git checkout 命令
    $ git checkout -b iss53
    Switched to a new branch "iss53"
    
    它是下面兩條命令的簡寫:
    $ git branch iss53
    $ git checkout iss53
    
  • 基於 master 分支的緊急問題分支 hotfix branch

你可以運行你的測試,確保你的修改是正確的,然後將其合併回你的 master 分支來部署到線上。 你可以使用 git merge 命令來達到上述目的

  • git merge 命令合併回你的 master 分支來部署到線上
    $ git checkout master
    $ git merge hotfix
    Updating f42c576..3a0874c
    Fast-forward
    index.html | 2 ++
    1 file changed, 2 insertions(+)
    

在合併的時候,你應該注意到了"快進(fast-forward)"這個詞。 由於當前 master 分支所指向的提交是你當前提交(有關 hotfix 的提交)的直接上游,所以 Git 只是簡單的將指針向前移動。 換句話說,當你試圖合併兩個分支時,如果順着一個分支走下去能夠到達另一個分支,那麼 Git 在合併兩者的時候,只會簡單的將指針向前推進(指針右移),因爲這種情況下的合併操作沒有需要解決的分歧——這就叫做 “快進(fast-forward)”。
現在,最新的修改已經在 master 分支所指向的提交快照中,你可以着手發佈該修復了。

面試官完完全全給我講解了一遍筆試題,連最後的邏輯推理,也帶我過了一遍。問了我一些基本情況,對我講了一些提高個人技能的建議。

面試官還提到了SpringCloud,我還沒學到,馬上就去學習!
真的很感謝他,因爲是第一次面試,這次真的蠻特別的一次經歷。雖然在這個過程中我自己把自己嚇哭了,但無論結果如何,我都很感謝這位面試官。

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章