原创 java ScheduledExecutorService 使用

ScheduledExecutorService的作用是任務的調動和時間密切相關。最常用的兩個方法分別是ScheduleAtFixedRate 和 ScheduleWithFixedDelay,這個兩個方法在使用上還是有一些差別的

原创 java linkedlist 使用

linkedlist的使用過程主要要注意下面幾點 1)linkedlis允許插入null節點 2)刪除元素最後基於迭代器操作,可以保障併發安全 3)使用Collections.sort方法對list排序時,在沒有比較器的情況

原创 java CountDownLatch 多線程文件搜索

基於多線程搜索文件,並且將最終的結果進行打印。這裏使用了CountDownLatch線程協作機制,主線程等待多個搜索線程完成,並對最終結果進行打印。另外使用了CopyOnWriteArrayList來保障多個線程保存操作結果的併發

原创 java thread join

java多線程編程join的作用是等待線程結束,這個作用可以產生很多特定的場景。 1)A線程中調用B線程的join方法,那麼A線程需要等待B線程執行完成後才能完成 2)主線程中依次調用A線程的join方法,B線程的join方法

原创 java hashset 原理

1、首先看它的類結構 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializabl

原创 java active object 併發模式

Active Object 是併發編程實踐中典型的異步編程模式,Active Object 模式的核心是通過解耦合方法的調用與執行來提高程序的併發度。 Active Object模式中一個核心概念就是併發對象,它不同於一般的對象

原创 cdn 驗證碼失效

這是一個由servlet訪問url命令引起的bug,我們圖片驗證碼的實現方式是採用servlet的方式生成驗證碼圖片,然後將驗證碼存儲在Session裏面,當用戶登錄驗證時,會獲取當前session中的驗證碼來驗證。 這種實現方

原创 aspose.word讀取word中的圖片並替換爲文字

aspose.word讀取word中的圖片並替換爲文字 try { // 新建文檔對象 Document doc = new Document(filePath);

原创 java hashset 使用

hashset的使用主要是注意以下幾個關鍵點: 1)hashset可以保證元素唯一,並且能快速查找 2)hashset底層的實現是hashmap(key爲set的值,value等於固定的Object對象) 3)hashset

原创 java linkedlist 原理

linkedlist原理分析的過程,主要是從下面幾個方面進行 1、類的繼承關係 public class LinkedList<E> extends AbstractSequentialList<E> imple

原创 java 單向鏈表實現

鏈表是一種常用的數據結構,理解了鏈表的結構和原理,我們也可以使用java來實現一個簡易的鏈表,麻雀雖小五臟俱全,o(^▽^)o package com.basic.alogrithm; public class BasicLin

原创 java 線程中斷

java並沒有提供一種直接中斷或者停止線程的方法,實際上我們說的線程中斷或者取消都是基於一種協作的機制來實現的,所謂協作即調用中斷或者取消方法後,線程會通過檢測某個狀態位來決定是否要退出正在執行的工作,從而來停止線程的執行。應該說

原创 java ThreadPoolExecutor 自定義線程池優勢

java併發線程池建議還是多多使用ThreadPoolExecutor的構造函數來設置自定義的線程池,先來看看這個構造函數的參數列表。 /** * Creates a new {@code ThreadPoolE

原创 java 二叉查找樹(搜索樹、排序樹)實現

二叉查找樹,又稱二叉搜索樹,又稱二叉排序樹,可以是null樹。主要思想如下,如樹的左子樹非空,則左子樹的所有節點值都小於根節點值,若樹的右子樹非空,則右子樹的所有節點值都大於根節點值。下面就基於這個思路來實現代碼了,代碼只實現了幾

原创 java 序列化字節流解析

定義下面一個類然後執行序列化得到字節流寫入文件,解析文件,基於這個過程瞭解java序列化的原理。 package com.heetian.erange.studio.crypt; import java.io.FileNotFo