工作兩年有餘,本人第一份工作是在一家外包公司 ,第二份工作是在一家做SAAS平臺的公司

第一家公司讓我入門,進入了軟件開發的行業,瞭解了一些基礎的東西;第二家公司由於規模不大,很多活兒都是一個人來做,從產品到開發、測試、運維我都瞭解了,對於整體的軟件開發流程有了很大的瞭解。但是,為了自己的更好發展,決定去一家大公司,於5月初提出了離職,雖然領導挽留,但是我還是離職了,然後我自己面試了很多家公司,大公司小公司都有,積累了足夠的經驗,開始向大公司投遞簡歷,面了幾家之後,終於拿到了自己滿意的offer,我是在積累了足夠的經驗之後才提出離職的,離職時一件很重大的事情,自己要慎重考慮,要從職業發展和個人規劃上考慮清楚再去做出選擇。
大公司面試考驗基礎和項目經驗,小公司比較偏向於項目經驗。這裡我都總結下,給大家一個參考,希望可以幫助到正在面臨跳槽的同志,文末有答案附送。
Java基礎
- Java基本數據類型
- 原始數據類型和封裝類的區別
- String、StringBuffer、StringBuilder區別
- 運行時異常和非運行時異常區別
- 簡述一下面向對象的特徵,並舉例說明你對面向對象的理解
- 正則表達式的用法
- Java 語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally分別代表什麼意義?finally代碼是在return之後還是之前執行?
- abstract class和interface有什麼區別?接口可以繼承接口嗎?接口可以繼承抽象類嗎,為什麼?
- 構造器(constructor)是否可被重寫(override)?
- 是否可以繼承String類?
- Java 中的final關鍵字有哪些用法?
- try{}裡有一個return語句,那麼緊跟在這個try後的finally{}裡的代碼會不會被執行,什麼時候被執行,在return前還是後?
- 闡述final、finally、finalize的區別。
- 如何通過反射創建對象?
- Java 8的新特性
- Java數組和鏈表的兩種結構的操作效率
- ava的引用類型有哪幾種

多線程、IO、集合
- ArrayList、Vector、LinkedList的存儲性能和特性
- List、Set、Map是否繼承自Collection接口?
- List、Map、Set三個接口存取元素時,各有什麼特點?
- 請說出與線程同步以及線程調度相關的方法。
- 編寫多線程程序有幾種實現方式?
- 簡述synchronized 和java.util.concurrent.locks.Lock的異同?
- hash碰撞以及hash算法、如何解決哈希衝突
- ArrayList和HsahSet的區別,HashMap和Hashtable的區別?
- HashMap的存儲原理,需要了解HashMap的源碼。
- ArrayList和LinkedList的各自實現和區別
- HashMap和HashTable區別
- Hashtable,HashMap,ConcurrentHashMap 底層實現原理與線程安全問題
- Hash衝突怎麼辦?哪些解決散列衝突的方法?
- 講講IO裡面的常見類,字節流、字符流、接口、實現類、方法阻塞。
- 講講NIO。
- 遞歸讀取文件夾下的文件,代碼怎麼實現
- 常用的線程池模式以及不同線程池的使用場景
- newFixedThreadPool此種線程池如果線程數達到最大值後會怎麼辦,底層原理。
- 瞭解可重入鎖的含義,以及ReentrantLock 和synchronized的區別
- atomicinteger和volatile等線程安全操作的關鍵字的理解和使用
- 進程和線程的區別
- 同步和異步,阻塞和非阻塞
設計模式
- 簡述一下你瞭解的設計模式。
- 寫出單利模式,懶漢和餓漢
JVM
- 描述一下JVM加載class文件的原理機制?
- Java 中會存在內存洩漏嗎,請簡單描述。
- GC是什麼?為什麼要有GC?
- JVM的內存模型(重要、GC算法、新生代、老年代、永久代等需要詳細瞭解)
- GC的工作原理
數據庫
- 事務的ACID是指什麼?
- 悲觀鎖和樂觀鎖的區別
- Left join、right join、inner join區別
- SQL優化
- redis緩存數據庫,需要了解,什麼是內存數據庫,支持的數據類型
- 單個索引、聯合索引、主鍵索引
- 索引的數據結構
- 數據庫的鎖,行鎖、表鎖、悲觀鎖、樂觀鎖
金九銀十是個跳槽旺季也是個機會,對於跳槽面試不自信、對面試文檔感興趣的小夥伴可以來私信我【面試資料】獲取到以上面試題目的文檔答案提升自己面試技能
框架
- web Service 常用註解 客戶端如何生成,還是手寫
- mybatis處理大數據
- AOP IOC優點缺點
- spring事務傳播屬性和隔離級別
- Web Service 客戶端和服務端實現技術
- Spring Mvc返回json技術
- Hibernate悲觀鎖和樂觀鎖
- Hibernate三種狀態
- hibernate和ibatis的區別
- 講講mybatis連接池
- SpringMVC的工作原理
- Spring的幾種注入方式
- Spring如何實現事務管理
- Spring IOC和AOP的原理
數據結構與算法
- 鏈表與數組?
- 隊列和棧,出錢與入棧?
- 鏈表的刪除、插入、反向?
- Hash表的hash函數,衝突解決方法有哪些?
- 各種俳序:冒泡、選擇、插入、希爾、歸併、快排、堆俳、桶排、基數的原理、平均時間複雜度、最壞時間複雜度、空間複雜度、是否穩定?對冒泡與快排的改進?
- 二分查找,與變種二分查找?
- 二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹?
- 二叉樹的前中後續遍歷:遞歸與非遞歸寫法,層序遍歷算法?KMP算法?
- 排列組合問題?貪心算法、分治算法?
Linux基礎
- 常用命令
- Linux文件權限
- 端口占用
項目經驗面試真題
- 瀏覽器訪問www.taobao.com,經歷了怎樣的過程。
- 高併發情況下,我們系統是如何支撐大量的請求的
- 集群如何同步會話狀態
- 負載均衡的原理
- 如果有一個特別大的訪問量,到數據庫上,怎麼做優化(DB設計,DBIO,SQL優化,Java優化)
- 設計緩存,使用memcached、redis,讀寫分離,數據庫優化(優化表結構、索引、查詢語句等),使用集群,升級硬件,
- 手寫斐波那契數列、遞歸查找文件
- Mybatis的# $的區別
- prototype作用域的範圍
- Spring的動態代理
- 手寫生產者消費者模式
- 分佈式鎖
- 死鎖的原因以及如何避免
- 內存溢出的原因
- 秒殺系統的設計
- 100萬條記錄實現導出
- 字符串的比較、反轉
- CountDownLatch的應用場景
金九銀十是個跳槽旺季也是個機會,對於跳槽面試不自信、對面試文檔感興趣的小夥伴可以來私信我【面試資料】獲取到以上面試題目的文檔答案提升自己面試技能
轉發+轉發+轉發後關注我私信回覆【面試資料】
Java常問進階面試專題
- MySQL面試題彙總
- Redis面試題彙總
- JVM面試題彙總
- 併發編程面試題彙總
- 設計模式面試題彙總
閱讀更多 老詹啊 的文章