原创 劍指Offer——題目17

/* 日期:2019.7.19 * 作者:劉烜傑 * 功能:劍指offer 題目17 * * ======================================================== * 問題描述:

原创 JAVA中對象的序列化Serializable

1.什麼是java對象的序列化? Serialization(序列化)是一種將對象以一連串的字節描述的過程; 與之對應,反序列化是一種將這些字節重建成一個對象的過程。 2.什麼時候需要用到序列化?    Java平臺允許我們在內存中創建可

原创 劍指Offer——題目22

/* 日期:2019.7.23 * 作者:*** * 功能:劍指offer 題目22 * * ===================================================== * 問題描述: *

原创 深入詳細的理解hashCode()和equals()之間的關係

首先,我們要知道標題所示兩個方法均是基於散列表和散列算法纔有其聯繫意義的! 而,java中散列表使用鏈表數組實現。 先來簡單敘述散列表:是一種可以快速查找特定對象的數據結構。散列表可以對每一個對象計算一個整數,成爲散列碼。而根據這個散列碼

原创 Java中抽象類和接口區別詳細總結,附JDK1.8的新特性

抽象類:使用abstract修飾,使用時,子類用extends繼承! 接口:使用interface修飾,使用時,具體實現類用implements實現! 按照類中所有元素,層次的區分兩者: 1.構造函數: 抽象類可以有構造函數,但,即使如此

原创 win10開機無法連接SENS服務

本文筆者親測,解決一下win10系統下,開機提示無法連接到SENS服務的解決方法。 1.使用(win+X)打開超級菜單,點擊命令提示符(管理員)。注意一定要使用管理員打開。 2.在管理員命令提示符中直接輸入:netsh winsock r

原创 JAVA可重入鎖ReentrantLock及其公平性

重入鎖ReentrantLock 顧名思義,就是支持重複進入的鎖,它表示該所能夠支持一個線程對資源的重複加鎖。而除此之外,該所還支持了獲取鎖時的公平和非公平性的選擇。注意,ReentrantLock是一個獨佔鎖。 重入性分析及實現 分析

原创 隊列同步器AQS的相關學習理解

本文章主要說明隊列同步器AbstractQueuSynchronized的使用,以及對其主要方法的簡單分析。 隊列同步器(以下簡稱AQS) 隊列同步器,是用來構建鎖或者其他同步組件的基礎框架,它使用了一個int成員變量來表示同步狀態,通過

原创 Synchronized原理以及鎖升級

我相信,任何關於Java語言的初學者,認知者,熟練者,大牛者,都知道java語言關於其多線程併發同步的關鍵字,我們今天的主角synchronized。我們也習慣於把synchronized理解爲重量級鎖(哪怕你自己當時可能都不知道什麼是重

原创 log4j2採用AsyncLogger的錯誤解決方案

配置文件,配置日誌打印控制: Appender採用默認同的(不額外加異步控制的Async) Logger採用異步的AsyncLogger(root無所謂) 如果此時是這樣配置的,也就是想要使用AsyncLogger + (sync)Ap

原创 JUC中幾個常見的併發工具類詳解

在JDK的併發包裏提供了幾個非常有用的併發工具類。 其中CountDownLatch,CyclicBarrier和Semaphore工具類提供了一種併發控制的手段。 而Exchanger工具類則提供了在線程間進行交換數據的一種手段。 1.

原创 根據JDK源碼理解hashmap的併發死循環

本文章,不是用來介紹所謂的hashmap的實現原理或者使用方法,而是就幾個常見問題進行一下個人詳細理解的闡述! 有關hashmap的幾個問題: 1.hashmap的容量爲什麼是2的冪次方? 2.hashmap在插入元素的時候,採用的是

原创 單例模式的幾種簡單實現以及理解

學過設計模式的都知道,在創建型模式中,有個單例模式,很簡單的設計模式,但是,這裏面也設計了比較多的小的細節問題,此處根據代碼,簡單的討論一下個人的理解。 什麼是單例模式? 難道我學習單例模式之前,就必須去學習所謂的設計模式嗎?哈哈,我就不

原创 詳細理解TCP的三次握手以及四次揮手過程,以及常見問題的思考

首先,我們通過一個圖解,來形象表述一下,tcp連接過程的三次握手: 三次握手圖解 1. TCP服務器進程先創建傳輸控制塊TCB,時刻準備接受客戶進程的連接請求,此時服務器就進入了LISTEN(監聽)狀態; 2.  TCP客戶進程也是先創

原创 循環遍歷數組(集合)的幾種方式的效率測試

前言: 本文旨在對比一下循環遍歷數組的三種方式的效率問題!(本文數據僅供參考) 如果你比較着急,或者不想看代碼,直接到最後,但是建議你簡單瀏覽代碼! 三種方式,均爲最常見的: 1.普通for循環遍歷 2.增強for循環遍歷 3.迭代器