日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java基础编程题书籍

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础编程题书籍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 前言

相信大家對 ZooKeeper 應該不算陌生。但是你真的了解 ZooKeeper 到底有啥用不?如果別人/面試官讓你給他講講對于 ZooKeeper 的認識,你能回答到什么地步呢?

拿我自己來說吧!我本人曾經使用 Dubbo 來做分布式項目的時候,使用了 ZooKeeper 作為注冊中心。為了保證分布式系統能夠同步訪問某個資源,我還使用 ZooKeeper 做過分布式鎖。另外,我在學習 Kafka 的時候,知道 Kafka 很多功能的實現依賴了 ZooKeeper。

前幾天,總結項目經驗的時候,我突然問自己 ZooKeeper 到底是個什么東西?想了半天,腦海中只是簡單的能浮現出幾句話:

  • ZooKeeper 可以被用作注冊中心、分布式鎖;
  • ZooKeeper 是 Hadoop 生態系統的一員;
  • 構建 ZooKeeper 集群的時候,使用的服務器最好是奇數臺。
  • 由此可見,我對于 ZooKeeper 的理解僅僅是停留在了表面。

    所以,通過本文,希望帶大家稍微詳細的了解一下 ZooKeeper 。如果沒有學過 ZooKeeper ,那么本文將會是你進入 ZooKeeper 大門的墊腳磚。如果你已經接觸過 ZooKeeper ,那么本文將帶你回顧一下 ZooKeeper 的一些基礎概念。

    另外,本文不光會涉及到 ZooKeeper 的一些概念,后面的文章會介紹到 ZooKeeper 常見命令的使用以及使用 Apache Curator 作為 ZooKeeper 的客戶端。

    如果文章有任何需要改善和完善的地方,歡迎在評論區指出,共同進步!

    四面阿里

    面試崗位是研發工程師,直接找螞蟻金服的大佬進行內推,參與了阿里巴巴中間件部門的提前批面試,一共經歷了四次面試,拿到了口頭offer。

    一面:

  • 自我介紹
  • 項目中做了什么,難點呢。
  • Java的線程池說一下,各個參數的作用,如何進行的。
  • Redis講一下
  • 分布式系統的全局id如何實現。用zookeeper如何實現的呢,機器號+時間戳即可。
  • 分布式鎖的方案,redis和zookeeper那個好,如果是集群部署,高并發情況下哪個性能更好。
  • kafka了解么,了解哪些消息隊列。
  • 想做業務還是研究。
  • 然后出了一道題,linux的訪問權限是rwx格式的。使用一個類支持訪問權限的增刪改查,并且注意使用的數據格式以及方法效率,規范。給了一個多小時寫題。
  • 耗時將近30分鐘。

    二面:

  • 介紹你做的項目和其中的難點。
  • 上次面試官問的問題,反射的作用是什么。
  • 數據倉庫,多線程和并發工具等。
  • 私有云,docker和k8s等。
  • 了解哪些中間件,dubbo,rocketmq,mycat等。
  • dubbo中的rpc如何實現。
  • 自己實現rpc應該怎么做
  • dubbo的服務注冊與發現。
  • 聽說我是非科班,于是問了些排序算法
  • 耗時將近30分鐘。

    三面:

    三面不是面試,而是筆試,耗時三個小時,考的是Java核心的基礎。但是好像不能透題,就不說了。都挺有難度的。

    大概說一下就是有幾個考點,Java并發的知識點,集合類,線程池,多線程之間的通信等。

    HR面:

    聊人生談理想,HR小姐姐非常溫柔,交流十分愉快。30分鐘。

    五面騰訊

    面試崗位是后臺開發工程師,我沒有選擇意向事業群。

    SNG的部門撈了我的簡歷,開始了面試,他們的技術棧主要是Java,所以比較有的聊一共經歷了四次技術面試和一次HR面試,拿到offer。

    一面:

  • 有序數組排序,二分,復雜度
  • 常見排序算法,說下快排過程,時間復雜度
  • 有N個節點的滿二叉樹的高度。1+logN
  • 朋友之間的點對點關系用圖維護,怎么判斷兩人是否是朋友,并查集,時間復雜度,過程。沒講清楚
  • 單元點最短路的方法,時間復雜度
  • 如何實現關鍵字輸入提示,使用字典樹,復雜度多少,有沒有其他方案,答哈希,如果是中文呢,分詞后建立字典樹?
  • hashmap的實現講一下吧,講的很詳細了。講一下紅黑樹的結構,查詢性能等。
  • Java中的垃圾回收講一下,講了分代,gc算法,gc root可達性分析等
  • 講一下兩個項目你都做了什么把。
  • 除了代碼之外你還學習了什么技術,框架。
  • 死鎖是怎么產生的
  • 線程和進程的區別
  • 進程的通信方式
  • CPU的執行方式
  • 代碼中遇到進程阻塞,進程僵死,內存泄漏等情況怎么排查。通過ps查詢狀態,分析dump文件等方式排查。
  • Linux了解么,查看進程狀態ps,查看cpu狀態 top。查看占用端口的進程號netstat grep
  • 10g文件,只有2g內存,怎么查找文件中指定的字符串出現位置。MapReduce分割文件處理。
  • 二面:

  • 快排的時間復雜度,冒泡時間復雜度,快排是否穩定,快排的過程
  • 100w個數,怎么找到前1000個最大的,堆排序,怎么構造,怎么調整,時間復雜度。
  • 一個矩陣,從左上角到右下角,每個位置有一個權值。可以上下左右走,到達右下角的路徑權值最小怎么走。
  • 四輛小車,每輛車加滿油可以走一公里,問怎么能讓一輛小車走最遠。說了好幾種方案,面試官引導我優化了一下,但是還是不滿意,最后他說跳過。
  • hashmap的實現,hashtable,concurrenthashmap實現。
  • MySQL的索引,B+樹性質。
  • Linux的cpu 100怎么排查,top jstack,日志,gui工具
  • Linux大文件怎么查某一行的內容。
  • Redis內存數據庫的內存指的是共享內存么
  • Redis的持久化方式
  • 秒殺系統的架構設計
  • 三面:

  • 十億個數的集合和10w個數的集合,如何求它們的交集。
  • 十億和數找到前100個最大的,堆排序,怎么實現,怎么調整。
  • TCP和UDP的區別,具體使用場景呢。
  • TCP四次揮手講一下過程,最后一次ack如果客戶端沒收到怎么辦。
  • 對于socket編程,accept方法是干什么的,在三次握手中屬于第幾次,可以猜一下,為什么這么覺得。
  • Linux操作系統了解么,了解一點點,就沒問了。
  • 對于單例模式,有什么使用場景了,講了全局id生成器,他問我分布式id生成器怎么實現,說了zk,問我zk了解原理不,講了zab,然后就沒問啦。
  • 除了單例模式,知道適配器模式怎么實現么,有什么用
  • 回到網絡,剛才你說到直播場景,知道直播的架構怎么設計么,要點是什么,說了幾個不太對,他說要避免廣播風暴,答不會。
  • Redis和MySQL有什么區別,用于什么場景。
  • 問了一下最近看什么書,什么時候開始寫博客的
  • 問了還有幾輪面試,他說這輪我可以過,有點小驚喜
  • 四面:

    三面過了半個多月,終于安排四面了。

  • 自我介紹
  • 項目,收獲
  • Linux了解哪些,基礎命令和知識。問我proc文件系統了解么,答不了解。
  • TCP和UDP的核心區別在哪,講了滑動窗口保證可靠有序傳輸,UDP不可靠。TCP需要連接而UDP不需要。
  • TCP的四次揮手,time wait狀態有什么意義。
  • 說完這個他問我有什么想問他的了。
  • 我問他為什么隔了這么久才面試,而且之前三面都只是初試,然后他說最近他在休假,所以就。。。害我擔心了好久。他說接下來等HR面就行了。
  • HR面:

    自我介紹

    實習收獲

    臺灣交流體驗

    之前實習公司的情況,拿到offer了嗎,會如何選擇呢

    排一下公司,部門,薪資和城市等因素。

    你的優缺點,如何改進

    學生時代最成功的事

    你的預期薪資

    三面頭條

    面試崗位是后臺研發工程師,地點選擇了上海,通過大佬內推,跳過死亡筆試,直接視頻面,從3點開始,斷斷續續到晚上8點結束。

    一共三輪技術面試,每一輪都要寫代碼,問問題的風格有點像騰訊,也喜歡問一些底層知識,讓我有點懵逼。

    一面:

  • 寫一個題,找一個無序數組的中位數
  • 寫了個快排,然后讓我找到無序數組第k大的一個數,我說先排序再找,實際上可以用快排的partition函數。
  • 快排的時間復雜度,最壞情況呢,最好情況呢,堆排序的時間復雜度呢,建堆的復雜度是多少,nlgn。
  • 操作系統了解么,Linux和windows
  • 說說Linux的磁盤管理,一臉懵逼
  • Linux有哪些進程通信方式,五大件
  • Linux的共享內存如何實現,大概說了一下。
  • 共享內存實現的具體步驟,我說沒用過
  • socket網絡編程,說一下TCP的三次握手和四次揮手,中間網絡不好,面試官都沒聽清楚,很尷尬
  • 跳過網絡,問了項目的一些東西
  • 問我如何把docker講的很清楚,我從物理機,虛擬機到容器具體實現稍微說了下。
  • 問我cgroup在linux的具體實現,不會。
  • 多線程用過哪些,chm和countdownlatch在實習用過
  • 二面:

  • 自我介紹
  • Java的集合類哪些是線程安全
  • 分別說說這些集合類,hashmap怎么實現的,扯了很多
  • MySQL索引的實現,innodb的索引,b+樹索引是怎么實現的,為什么用b+樹做索引節點,一個節點存了多少數據,怎么規定大小,與磁盤頁對應。
  • MySQL的事務隔離級別,分別解決什么問題。
  • Redis了解么,如果Redis有1億個key,使用keys命令是否會影響線上服務,我說會,因為是單線程模型,可以部署多個節點。
  • 問我知不知道有一條命令可以實現上面這個功能。不知道
  • Redis的持久化方式,aod和rdb,具體怎么實現,追加日志和備份文件,底層實現原理的話知道么,不清楚。
  • Redis的list是怎么實現的,我說用ziplist+quicklist實現的,ziplist壓縮空間,quicklist實現鏈表。
  • sortedset怎么實現的,使用dict+skiplist實現的,問我skiplist的數據結構,大概說了下是個實現簡單的快速查詢結構。
  • 了解什么消息隊列,rmq和kafka,沒細問
  • 寫題時間到。第一題:寫一個層序遍歷。
  • 第二題:寫一個插入樹節點到一顆排序樹的插入方法,使用遞歸方式找到插入位置即可。
  • 第三題:一個有向圖用鄰接矩陣表示,并且是有權圖,現在問怎么判斷圖中有沒有環。
  • 第四題:一個二叉樹,找到二叉樹中最長的一條路徑。
  • 三面:

    三面的面試官真的高冷啊,不茍言笑就算了,我問他他都不愛搭理的,搞得我內心慌得一比,感覺涼涼。

    1 介紹一下項目

    2 你談到的并發技術,chm和countdownlatch怎么使用的

    3 為什么要這么處理,使用線程池是不是也可以。我說也可以

    4 操作系統的進程通信方式,僵尸進程和孤兒進程是什么,如何避免僵尸進程,我說讓父進程顯示通知,那父進程怎么知道子進程結束了,答不會。

    5 計算機網絡TCP和UDP有什么區別,為什么迅雷下載是基于UDP的,我說FTP是基于TCP,而迅雷是p2p不需要TCP那么可靠的傳輸保證。

    6 他說不對,我說是不是因為要建立連接,開銷比較大,他說不對

    7 我說p2p的發送節點很多,所以不是那么需要各種傳輸保證,他說不對。

    8 我說TCP會自動分包而TCP可以自己定義數據長度。。他還是說不對。

    最后他說算了。我們問下一個吧。

    9 操作系統的死鎖必要條件,如何避免死鎖。

    10 寫一個LRU的緩存,需要完成超時淘汰和LRU淘汰。

    我說用lhm行不行,他說用linkedlist和hashmap可以。

    于是我就寫了put和get函數,進行了隊頭隊尾操作。

    他說get復雜度會不會太高,我瞎掰了半天沒找到辦法,他說那就這樣吧,今天面試到這。

    11 媽蛋,過期淘汰的處理我還沒寫呢,你就說結束了,感覺涼了啊,我說我要不要把剩下邏輯下完,他說不用,心涼了一大截~

    然后就是HR小姐姐讓我等結果了。溜了溜了

    寫在最后

    以上就是我的面試過程,為了這次面試,也收集了很多的面試題,反正我已經面過了,那就免費分享出來吧!

    需要的朋友:關注一下,然后點擊這里即可免費領取

    以下是部分面試題截圖

    還沒寫呢,你就說結束了,感覺涼了啊,我說我要不要把剩下邏輯下完,他說不用,心涼了一大截~

    然后就是HR小姐姐讓我等結果了。溜了溜了

    寫在最后

    以上就是我的面試過程,為了這次面試,也收集了很多的面試題,反正我已經面過了,那就免費分享出來吧!

    需要的朋友:關注一下,然后點擊這里即可免費領取

    以下是部分面試題截圖

    總結

    以上是生活随笔為你收集整理的java基础编程题书籍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。