原创 面試爛的hashMap你真的懂嗎?

前言:HashMap是java工程師在面試過程中,碰到的概率極大的一道題,很大一部分人都是看了一些博客,記住一些答案,但是深究往往無法接招,本文就來扒一扒hashMap面試常見的點及源碼分析。 推薦分析目前爲止個人看過的分析has

原创 劍指offer——把字符串轉換成整數

題目 將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0 輸入描述: 輸入一個字符串,包括數字字母符號,可以爲空 輸出描述: 如果是合法的數值表達則返回該數字,

原创 劍指offer——數組中重複的數字

題目 在一個長度爲n的數組裏的所有數字都在0到n-1的範圍內。 數組中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 例如,如果輸入長度爲7的數組{2,3,1,0,2,5

原创 劍指offer——構建乘積數組

題目 給定一個數組A[0,1,…,n-1],請構建一個數組B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:規定B[0] = A[1] * A[

原创 劍指offer—和爲S的連續正數序列

題目: 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和爲100(至少包括兩個數)。沒多久,他就得到另一組連續正數和爲100

原创 劍指offer—二叉樹的深度

題目: 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 題中定義了二叉樹的深度爲:最長的一條路徑長度即爲樹的深度。 可以分爲幾種情況: 如果樹只有左子

原创 劍指offer—數組中的逆序對

原題目: 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總> 數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 首先拿到

原创 劍指offer—數字在排序數組中出現的次數

題目: 統計一個數字在排序數組中出現的次數。 題目中看到了有序,首先應該想到的是二分查找。但是常規的二分查找用於尋找一個數,該題是用於尋找一個範圍,因爲需要尋找第一個等於目標數的數及最後一個等於目標數的數。 如何尋找第一個等於

原创 劍指offer—兩個鏈表的第一個公共結點

題目如下: 輸入兩個鏈表,找出它們的第一個公共結點。(注意因爲傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數 據是正確的) 因爲鏈表都是單向鏈表,一旦兩個鏈表有公共的節點,則從該節後往後的節點都是相同的。

原创 劍指offer—醜數

第N個醜數1. 初始版2. 改進版總結 題目 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含質因子7。 習慣上我們把1當做是 第一個醜數。求按從小到大的順序的第N個醜數

原创 Java面試指南——01JUC多線程及高併發

文章目錄1. 談談volatile的理解1.1 什麼是JMM1.1.1 可見性1.1.2 原子性1.1.3 禁止指令重排1.2 工作哪用到指令重排 1. 談談volatile的理解 volatile是java虛擬機提供的輕量級同

原创 計算機網絡04——網絡層

網絡層主要負責不同網絡之間轉發數據包,基於數據包的ip地址轉發,不保證順序性,不保證準確性。 主要的設備:路由器 路由器中的子網掩碼目的是告訴用戶網絡是哪一部分。 比如網絡是10.0.0.0,其中子網掩碼是255.0.0.0,則子

原创 計算機網絡03——數據鏈路層

1. 數據鏈路層基本問題 1.1 數據鏈路層的簡單模型 比如主機H1給主機H2發送信息 數據流轉如下圖: 2.2 爲什麼需要數據鏈路層 判斷數據是否正確,幀頭幀尾是否正確、加上校驗和。 主要解決一下問題: 2.1 封裝成幀 在

原创 計算機網絡02——物理層

本章主要講解計算機網絡的物理層相關知識。 計算機網絡:物理層 1. 爲什麼需要物理層 物理層解決如何在連接各種計算機的傳輸媒體上傳輸數據比特流,而不是指具體的傳輸媒體。 主要是爲了確定傳輸的接口特性,比如機械特性(接口形狀、大小)

原创 計算機網絡01——概述

文章目錄1. 計算機網絡概述1. 局域網2. 廣域網3. 網絡如何通信4. OSI分層模型5. OSI分層模型與安全6. TCP/IP協議與OSI參考模型7. 計算機網絡的性能 1. 計算機網絡概述 1. 局域網 常見的局域網如下