原创 垃圾回收之併發情況下如何確定對象可達

垃圾回收之併發情況下如何確定對象可達 首先介紹下三色標記法:JVM中是通過三色標記法來確定哪些對象需要被回收,把遍歷對象圖過程中遇到的對象,按照“是否訪問過”這個條件標記成一下三種顏色: 白色 表示對象尚未被垃圾收集器訪問過,顯然在垃圾收

原创 Java常用阻塞隊列

Java常用阻塞隊列 ArrayBlockingQueue 內部由一個固定長度的數組來實現阻塞隊列 /** The queued items */ final Object[] items; /** items index for nex

原创 深入理解kafka——RecordAccumulator 和 InFlightRequests

博主在這裏不具體討論生產者的代碼如何編寫,而是聚焦於生產者客戶端比較重要的兩個區域RecordAccumulator 和 InFlightRequests。   整個生產者客戶端由兩個線程協調工作,分別爲主線程和Sender線程。主線程中由

原创 java創建線程的三種方式——附源碼說明

首先我們知道啓動一個線程都是通過調用Thread類的start()來開啓一個新線程,那麼我們就來一起看看Thread類的start()方法源碼: /** * Causes this thread to begin exe

原创 java實現責任鏈模式的小demo

//一個請假請求 public class LeaveRequest { private int leaveDays; private String name; public void leave(){

原创 講講java中線程池的實現

今天跟一個同學談到java中的線程池的實現,才發現有些知識點已經記不清了,所以特意把源碼打開,對官方文檔做了些說明。            其實這些理解了之後,讀懂源碼應該是沒多大問題了,有感興趣的小夥伴們可以看完說明後自行去閱讀源碼。

原创 將原型模式和建造者模式結合起來耍一耍

/** * @author :nx014924 * @date :Created in 5/30/2021 2:45 PM * @description: * @modified By: * @version: */ publ

原创 一個簡單的單例模式Demo

/** * @author :nx014924 * @date :Created in 5/30/2021 1:09 PM * @description: * @modified By: * @version: */ publ

原创 實例說明抽象工廠模式

/** * @description:這是一個抽象工廠接口,下文的格力工廠和海爾工廠都實現了這個工廠接口 */ public interface Factory { //生產空調 AirConditioner getA

原创 阻塞、非阻塞和同步、異步

1、同步與異步   同步與異步關注的是消息通信機制,同步與異步關注的是發起調用後到底是調用者主動等待這個結果(同步),還是調用者被動等待結果——即被調用者通知調用者(異步) 2、阻塞與非阻塞   阻塞與非阻塞關注的是程序在等待結果時的狀態,

原创 堆排序(實現c++)

  堆可以看作是一個完全二叉樹,分爲大頂堆和小頂堆,本文我們以大頂堆爲例來實現堆排序。   (1)建堆   先把給定的序列轉換成一棵完全二叉樹,然後逐步對其調整使其每個結點的值都大於其兩個子結點的值,因此我們需要從第一個非葉結點開始逐步向前

原创 tcp四次揮手爲什麼要等待2MSL

  之前所說了解有兩個原因:   1、防止客戶端最後一次發給服務器的確認在網絡中丟失以至於客戶端關閉,而服務端並未關閉,導致資源的浪費。   2、等待最大的2msl可以讓本次連接的所有的網絡包在鏈路上消失,以防造成不必要的干擾。   但對於

原创 同步、異步和阻塞、非阻塞的區別

——來源網絡,作者不明。   老張愛喝茶,廢話不說,煮開水。出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。1 老張把水壺放到火上,立等水開。(同步阻塞)老張覺得自己有點傻2 老張把水壺放到火上,去客廳看電視,時不

原创 中序線索二叉樹

  雖說對於二叉樹的遍歷操作來說非遞歸法使用用戶自定義的棧來代替遞歸使用時的系統棧,可以得到不小的效率提升,但將二叉樹線索化時能將用戶棧也省略掉進一步提高了效率。   對於二叉樹的鏈表結構,n個結點的二叉樹有n+1個空鏈域(每個葉節點都有兩

原创 數據庫事務的隔離級別及四大特性

在我們瞭解數據庫隔離級別前先來回顧一下數據庫讀數據時可能遇到的問題: (1)髒讀 一個事務對數據進行更新操作,但還完成,此時另一事務讀取該數據,如果此時第一個事務由於操作失敗進行了回滾,那麼此時另外事務讀取的數據就是髒數據。 (2)不可重複