java怎么将前端的数据存到关联的表中_Java程序员最可能被考到的14个面试题
1. 如何只掃描一遍就找到位于一個鏈表正中間的元素?
這是最受歡迎的算法題之一,經常在電話面試中被問到。很多程序員會想,要知道鏈表的長度,就要先掃描一遍鏈表,然后在第二遍中取其正中的元素。所以被要求只掃描一遍就解決問題的時候他們就會很困惑。要解決這個問題,你要維護兩個指針。一個每次往下走一個結點,而另一個每次走兩個結點。那么當走的快的指針到達鏈表末尾時,另一個指針就正好指在鏈表的正中間。
2. 如何確定一個鏈表中是否存在環?
這跟第一題有點類似。同樣地維護兩個指針,分別以每步一個結點和每步兩個結點的速度走,那么如果當某一步結束以后兩個指針指向同一個結點,就說明我們找到了一個環。
3. 如何只掃描一遍就找到一個鏈表倒數第三個元素?
這也是一個很經典的鏈表題,也可以用兩個指針的方法來解決。我們讓第一個指針先走,當它走出三步以后再讓第二個指針開始走。那么當第一個指針到達鏈表的末尾時,第二個指針就正好指向鏈表中的倒數第三個元素。
4. 如何找到一個含有 1~100 的數組中唯一出現兩次的元素?
這是一個挺簡單的算法題。你可以把數組里面所有元素加起來,再減去 1~100 的和,就能得到那個重復的元素。當然你也可以暴力地去比對每一對元素,不過這樣的復雜度是 O(N^2)。
5. 如何在 Java 中反轉一個字符串?
這是我最喜歡的問題之一。因為 String 是編程中最重要的類型之一,所以在技術面試中你會遇到許多跟字符串有關的問題。Java 和其他編程語言都有許多不同的方式可以反轉一個字符串,所以面試官往往會禁止你使用某些特性,比如 reverse() 和 StringBuffer。之后他還可能會問如何用遞歸來反轉字符串。
6. 如何用冒泡排序對數組進行排序?
在技術面試中我總是會問一些關于搜索和排序的問題。冒泡排序是最簡單的排序算法之一,但如果你讓一個候選人現場寫冒泡排序,這能夠很好地衡量他的編程技能。
7. 棧和隊列這兩種數據結構之間的區別是什么?
這是一個經典的數據結構問題,應該沒有人不知道的吧?不管怎么說,最主要的區別在于棧是后進先出(LIFO),而隊列是先進先出(FIFO)的。
8. 如何找到一個數組中所有重復出現的元素?
這個問題有時會作為第 4 題的后續出現。解決這個問題的一種途徑是使用哈希表。遍歷整個數組并將元素和出現次數存到哈希表中。最后你就可以統計那些出現超過一次的元素作為答案。在 Java 中,當一個元素已經在 HashMap 中時,調用 get(index) 就可以得到對應的值,否則會返回 Null。這個性質可以用來插入和更新 HashMap 中的值。
9. 單向鏈表和雙向鏈表之間有什么差別?
這又是一個經常在電話面試中被問到的數據結構題。單向鏈表和雙向鏈表之間主要的差別在于它們的可遍歷性不同。在單向鏈表中,每個結點只有指向下一個結點的指針,而沒有指向上一個結點的指針,所以你就不能倒回去遍歷。而雙向鏈表的結點則維護了兩個指針,往兩個方向都可以遍歷。
10. 如何打印斐波那契數列?
這是一個在面試中經常出現的編程問題。斐波那契數列是這樣的一種數列:它的每一項都等于前兩項之和,例如:1,1,2,3,5,8,13,21。面試官往往會關心這兩件事情:一個能夠返回斐波那契數列第 n 項的函數,以及如何在 Java 中用遞歸解決這個問題。雖然這個問題很簡單,但遞歸的部分可能會困惑一些初學者。
11. 如何判斷一個整數是不是回文數?
跟前一題一樣,這也不是一個算法題,但在面試中的出現率也很高。當一個數反過來寫還是等于本身時,我們稱之為回文數。面試官往往會要求你不使用 Java API 和第三方庫來解這個問題。當然,問題本身不難。你只要會用 / 和 % 就能解決它。/ 能去掉最后一位,而 % 能得到最后一位。比如 1234 / 10 會得到 123,而 1234 % 10 則能得到 4。
12. 什么是二叉查找樹?
這是一個關于樹的數據結構問題。二叉查找樹滿足一些特殊的性質,比如說每個結點的左子樹中的值都要比自身小,而右子樹中的值都要比自身大,等等。除了定義以外,面試官還可能讓你在 Java 中實現一棵二叉樹并詢問關于樹的遍歷的問題。比如中序遍歷、先序遍歷和后序遍歷之間的區別。
13. 如何分別用遞歸和非遞歸方式倒置一個鏈表?
這是一個非常好的數據結構題,所以我希望你自己去思考。當然你也能輕易地在網上找到許多解法。
14. 如何用 Java 實現一個棧?
你可以用數組或者鏈表來實現棧。這個問題期望你實現棧所提供的標準接口,也就是 push()和 pop()。這兩個操作都應該發生在棧的頂部。當然,如果你能實現 contains() 和 isEmpty() 這樣的功能就更好了。順便一提,你可以利用 JDK 提供的 java.util.Stack 來學習怎么實現一個棧。
總結
以上是生活随笔為你收集整理的java怎么将前端的数据存到关联的表中_Java程序员最可能被考到的14个面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 堆栈_Java中线程与堆栈的关
- 下一篇: 家里的旧笔记本不要换脸盆旧电脑换不锈钢脸