今年行情很差,想要守住工做而且漲薪的、想要跳槽或者找工做的,技術不行怎麼辦呢?其實說實話,除了多學習最新的技術外,還要有深度,因此有這種想法的,能夠點這裏,暗號:cszq,提供免費的Java後端和架構方面的學習途徑和資料,你想要的內容,這裏都有。面試
Java基礎
Hashtable和HashMap的區別。
抽象類與接口的區別。
final關鍵字的使用和區別。
異常分類和處理機制。
JDK版本區別。
StringBuilder內部實現機制。
反射機制的使用。
匿名內部類的使用。
泛型的概念和使用。
弱引用和虛引用的概念和使用方式。
redis
開源框架
一、SpringMVC和Struts2的區別
二、Spring IOC和AOP的概念以及實現方式
三、Spring事務的管理
四、Hibernate與MyBatis的比較
五、Hibernate延遲加載的機制
算法
JVM虛擬機
一、GC算法有哪些
二、垃圾回收器有哪些
三、如何調優JVM
四、緩存和NoSQL
五、緩存的使用場景
六、緩存命中率的計算
七、Memcache與Redis的比較
八、如何實現Redis的分片
九、MongoDB的特色
數據庫
分佈式
zookeeper的用途
dubbo的用途以及優勢
dubbo的實現原理
數據結構和算法
單向鏈表的逆序排列
雙向鏈表的操做
1億個整數的倒序輸出
找出給定字符串中最長迴文(迴文:abcdcba,兩端對稱)
編程
網絡編程
Get和Post的區別
Https協議的實現
長鏈接的管理
Socket的基本方法
後端
數據庫
inner join和left join的區別
複雜SQL語句
數據庫優化方式
數據庫拆分方式
如何保證不一樣數據結構的數據一致性
設計模式
安全
什麼是XSS攻擊,具體如何實現?
開放問題:如何保障系統安全?
數組
設計模式
寫出一個設計模式的類圖
設計模式的意義是什麼
寫個單例模式的代碼
緩存
多線程
如何避免Quartz重複啓動任務
線程池滿了如何處理額外的請求 同一個對象的連個同步方法可否被兩個線程同時調用
安全
已將資料整理成PDF文檔,有須要的能夠點擊進入,暗號:cszq,全部Java面試資料免費提供,還有各類Java後端學習資料,有須要的也能夠
關注+私信 我!
異常分類和處理機制
分類:
運行時異常(Runtime Exception) 受檢查異常(Checked Exception) 運行時異常:
必須繼承RuntimeException類, 定義方法時沒必要聲明會拋出運行時異常。 調用方法時沒必要捕獲運行時異常。 受檢查異常:
不繼承自RumtimeException類 定義方法時須要拋出可能會拋出的Checked Exception 調用方法時須要捕獲Checked Exception或者繼續向上拋出。 邏輯上:
運行時異常:通常不須要或者不知道如何處理此類異常; 受檢驗異常:通常須要知道如何處理可能發生的異常狀況。 StringBuilder內部實現機制
StringBuilder內部有一個字符數組,代碼以下
char[] value; //字符數組int count; //字符串長度 每一次append操做都是將新的字符串加入到可變長的字符數組中,長度計算方式與ArrayList相似。調用toString()方法時,new一個String對象便可。
public String toString() { return new String(value, 0, count);// Create a copy, don’t share the array} ps: StringBuffer是線程安全的,StringBuilder是非線程安全的。
匿名內部類的使用
匿名內部類是沒有名字的類,只在某一處被使用,不會被多處調用,通常是某個父類或接口的特定實現。
強引用、軟引用、弱引用和虛引用
強引用: 通常的引用都是強引用,即便OutOfMemory也不會回收這部分被把持的引用內存。 軟引用(SoftReference): 若是內存空間足夠,垃圾回收器就不會回收它;若是內存空間不足了,就會回收這些對象的內存。只要垃圾回收器沒有回收它,該對象就能夠被使用。++軟引用能夠用來實現內存敏感的高速緩存。++ 弱引用(WeakReference):弱引用的對象擁有更短暫的生命週期。當垃圾回收期發現只有若引用的對象,不論內存空間足夠與否,都會回收它。 虛引用:虛引用不會決定對象的生命週期,若是一個對象僅持有一個虛引用,那麼它隨時可能被回收。++虛引用主要用來跟蹤對象被垃圾回收器回收的活動。++ 開源框架
SpringMVC和Struts2的區別
SpringMVC的方法級別的攔截,Struts2是類級別的攔截; SpringMVC是基於Servlet實現Controller,Struts2是基於Filter實現; SpringMVC性能和安全性高於Struts2; SpringMVC更加組件化和流程化,易於擴展,好比返回JSON經過設置@ResponseBody便可; Struts2更加無耦合,比較純粹,可是須要更多的自行開發的代碼以支持更多功能。
Spring事務的管理
分類:聲明式事務、編程式事務
聲明式事務:經過統一配置實現事務的統一管理,通常配置TransactionMananger以及相關屬性便可。 編程式事務(註解方式):在須要事務的方法上配置相關的註解(包括事務類型、回滾策略等) 事務類型:
PROPAGATION_REQUIRED PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_REQUIRES_NEW PROPAGATION_NOT_SUPPORTED PROPAGATION_NEVER PROPAGATION_NESTED 事務隔離級別
ISOLATION_DEFAULT ISOLATION_READ_UNCOMMITTED ISOLATION_READ_COMMITTED ISOLATION_REPEATABLE_READ ISOLATION_SERIALIZABLE Hibernate與MyBatis的比較
Hibernate徹底實現對象關係映射(ORM),MyBatis實現的是SQL Mapping MyBatis能夠進行更爲細緻的SQL優化,能夠減小查詢字段。比Hibernate容易掌握,Hibernate門檻較高。 Hibernate的DAO層開發比MyBatis簡單,Mybatis須要維護SQL和結果映射。 Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。 Hibernate數據庫移植性很好,MyBatis的數據庫移植性很差,不一樣的數據庫須要寫不一樣SQL。 Hibernate有更好的二級緩存機制,可使用第三方緩存。MyBatis自己提供的緩存機制不佳。
GC算法有哪些
引用計數 複製 標記-清除 標記-壓縮 分代(新生代、老年代、永久代) 垃圾回收器有哪些
串行回收器:新生代串行回收器、老年代串行回收器 並行回收器:新生代ParNew回收器、新生代ParallelGC回收器、老年代ParallelGC回收器 CMS回收器:(Concurrent Mark Sweep、併發標記清除) G1回收器(1.7之後代替CMS回收器) 如何調優JVM
標準參數:
-client -server模式 -Xmn、-Xms、-Xmx 監控:jps、jstat、jinfo、jmap、jhat、jstack… Java 中堆和棧有什麼區別?
JVM 中堆和棧屬於不一樣的內存區域,使用目的也不一樣。
棧經常使用於保存方法幀和局部變量,而對象老是在堆上分配。 棧一般都比堆小,也不會在多個線程之間共享,而堆被整個 JVM 的全部線程共享。 緩存和NoSQL
緩存命中率的計算
命中緩存次數/(命中緩存次數+未命中緩存次數) = 命中率
Memcache與Redis的區別
memcache把數據存在內存之中,斷電後會掛掉;Redis部分數據持久化在硬盤上,斷電不會丟失。 memcache存的是key-value對,redis支持更多的數據結構和數據類型 memcache可使用一致性hash作分佈式,redis能夠作主從同步 redis單線程,只使用1個cpu 如何實現Redis的分片
使用一致性哈希對數據進行映射 實現方式:客戶端分片(每一個客戶端對應一個分片)、代理協助分片、查詢路由分片; 使用redis集羣,如codis(豌豆莢,依賴zookeeper);
zookeeper的用途
zookeeper做爲分佈式應用協調系統,已經用到不少分佈式項目中。
能夠用來完成統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項等管理工做。
zookeeper的主要操做分一下幾種:
建立節點 讀取節點數據 更新節點數據 刪除節點 監控節點變化 應用場景:
統一命名服務,使用create自動建立節點編號; 配置管理,多個節點的共享配置,當配置發生變化時,可利用zookeeper讓使用這些配置的節點得到通知,進行從新加載等操做。如dubbo服務。 集羣管理:集羣選舉主節點,資源定位。 共享鎖 負載均衡 應用項目:
dubbo服務集羣、redis集羣、Hadoop集羣等
dubbo的用途以及優勢
Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。
數據結構和算法
將單項鍊表逆序排列
將單向鏈表逆序輸出,方法有三種:
遍歷鏈表,將每一個節點的內容存入一個數組中,而後逆序輸出數組(最簡單的作法) 使用棧來逆序輸出 直接將鏈表(指針)逆序而後輸出
最後祝你們都能工做順利,年薪百萬!