原创 ArrayList源碼解析(JDK8版本)

源碼分析目錄類圖結構存儲結構ArrayList初始化新增對象與數組擴容刪除對象查找對象線程安全性VectorSynchronizedListCopyOnWriteArrayList 類圖結構 ArrayList是對List列表數據

原创 [ALGO-50] 數組查找及替換

算法訓練 數組查找及替換   時間限制:1.0s   內存限制:512.0MB 問題描述   給定某整數數組和某一整數b。要求刪除數組中可以被b整除的所有元素,同時將該數組各元素按從小到大排序。如果數組元素數值在A到Z的A

原创 各類經典排序算法(動態圖,Java實現)

常見排序算法寫在前面基於比較的排序算法選擇排序算法描述動圖演示代碼實現冒泡排序算法描述動圖演示代碼實現插入排序算法描述動圖演示代碼實現希爾排序算法描述動圖演示代碼實現歸併排序 (非遞歸實現)算法描述動圖演示代碼實現快速排序 (遞歸

原创 Java單線程Thread框架原理

Java單線程有三種實現方法 繼承Thread類,重寫run(),無返回值 實現Runnable接口,重寫run(),無返回值 實現Callable<V>接口,重寫call()方法,有返回值 Java的單線程框架 這三種實現方

原创 Java線程的使用方法

文章目錄單線程的使用方式java.lang.Runnablejava.lang.Threadjava.util.concurrent.FutureTask線程池的使用方式創建線程池提交線程任務關閉線程池 單線程的使用方式 java

原创 [ALGO-20] 求先序排列

算法訓練 求先序排列   時間限制:1.0s   內存限制:256.0MB 問題描述   給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度<=8)。 輸入格式   兩行,每行一個

原创 爲什麼重寫equals()就必須重寫hashcode()

JVM是從內存角度看對象的,內存一樣的對象纔算是相等的,所以,內存的唯一性決定了對象只能是“自己和自己纔是相等的”。 Java的“==”規則是個內存判斷,默認的equals()也使用了“==”規則: /** * 該方法應該滿足五個條件

原创 Java 數組輸出

Java 數組輸出 Java 數組輸出一般都是用循環輸出,例如(code1): int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { System.

原创 JDBC連接MySql數據庫

學習 JDBC 的時候,我們首先應該瞭解一些基礎知識點: 1、JDBC 全稱:Java DataBase Connectivity 2、數據庫本身是個獨立運行的程序,我們編寫的應用程序是利用通信協議對數據庫進行指令交換。 3、JDBC 是

原创 關於“在本類中訪問本類私有靜態變量”的一點疑惑解析

關於“在本類中訪問本類私有靜態變量”的一點疑惑解析 代碼如下: public class StaticVar { private static int x = 100; public static void main(String

原创 編程小技巧

編程小技巧 (1) if (username.equals("abc")) { }username 可能爲 null , 會報空指針錯誤java.lang.NullPointerException,可改爲 "zxx".equals(us

原创 線性時間選擇

線性時間選擇 題目:給定n個元素和一個整數k,要求用O(n)時間找出這n個元素中第k小元素。 import java.util.Scanner; public class Main { static int kmin;// 第k小的

原创 Java 驗證碼 kaptcha

簡單介紹: kaptcha 是一個擴展自 simplecaptcha 的驗證碼庫,在 Java 編程中是一個非常實用的驗證碼生成工具。我們可以利用這個工具生成各種樣式的驗證碼,因爲它是可配置的,我們可以根據需求定製。 工作原理: kap

原创 最長單調遞增子序列問題

最長單調遞增子序列問題 題目:設計一個 O( n ^ 2 )複雜度的算法,找出由 n 個數組成的序列的最長單調遞增子序列。 import java.util.Scanner; public class Main { public

原创 金塊問題

金塊問題 題目:老闆有一袋金塊(共 n 塊,n 是 2 的冪( n ≥ 2 )),最優秀的僱員得到其中最重的一塊,最差的僱員得到其中最輕的一塊。假設有一臺比較重量的儀器,希望用最少的比較次數找出最重和最輕的金塊。並對自己的程序進行複雜性分