原创 JVM內存分配與回收策略

JVM的自動內存管理主要解決兩個問題: 給對象分配內存 回收給對象分配的內存 內存分配規則 新生代GC(Minor GC):發生在新生代的垃圾收集動作,Minor GC動作非常頻繁,回收速度較快 老年代GC(Major GC/Ful

原创 JVM對象

1.對象的創建 通過new創建對象時,首先檢查這個符號引用所代表的類是否已經被加載、解析和初始化過。如果沒有,執行相應的類加載過程。  2.內存分配 對象所需要的內存空間在類加載完成後便可完全確定 2.1分配方法 1.指針碰撞;

原创 如何判斷一棵樹是否是平衡二叉樹

1.定義 平衡二叉樹是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹 2.代碼實現  public boolean IsBalanced_Solution(TreeNode root) {

原创 子網劃分

子網劃分詳解與子網劃分實例精析

原创 線程安全

1、什麼是線程安全? 當多個線程訪問一個對象時,如果不用考慮這些線程的訪問方式和如何進行交替執行,主程序中也不需要進行額外的同步,調用這個對象都能獲得正確的結果,那麼這個對象是線程安全的。 2、線程不安全代碼  開啓三個線程,每個線程

原创 Synchronized的底層實現原理

synchronized實現同步的基礎 Java中的每一個對象都可以作爲鎖,具體表現爲以下形式: 對於普通方法,鎖的是當前實例對象 對於靜態方法,鎖的是當前類的Class對象 對於代碼塊,鎖的是Synchonized括號裏配置

原创 死鎖及其解決辦法

目錄 死鎖的定義 死鎖代碼演示 如何避免死鎖 參考文獻 死鎖的定義 由於兩個或者多個線程相互持有對方所需要的資源,導致這些線程處於相互等待狀態,使得每一個線程都無法執行下去。 死鎖代碼演示 package lock; public

原创 招商銀行2019Fintech訓練營面試

昨天參加了招商銀行Fintech訓練營的面試,今天有時間就整理了一下,方便大家參考。 一個三個面試官,一個爲總行HR,一個總行技術大佬,還有一個西安分行的HR(因爲我在西安,感覺分行的HR就是划水的,應該是來幫忙的)個人感覺面試難度整體不

原创 sleep()和wait()方法有什麼區別

目錄 sleep()方法: 功能: 使用場合: 注意: wait()方法  功能: 使用場合: 注意: 代碼示例  sleep()方法: 功能: sleep()方法是Thread類的方法,線程通過調用該方法,進入休眠狀態主動讓出CPU,

原创 基於線程池技術的簡單web服務器

1.首先實現一個線程池 1.1線程池接口 package threadpool; public interface ThreadPool<Job extends Runnable> { //執行一個job void e