原创 JAVA常見排序算法整理-速記

常見排序算法對比: 速記: 不穩定的排序算法:快 些 選 堆(快速排序,希爾排序,選擇排序,堆排序) 相關術語解釋: (1)內排序:所有排序操作都在內存中完成; (2)外排序:由於數據太大,因此把數據放在磁盤中,而排序通過磁

原创 JMM內存模型 Volatile 緩存一致性協議

1. 計算機多核併發緩存架構 在多處理器系統中,每個處理器都有自己的高速緩存,而它們又共享同一主內存(MainMemory): 2. JMM內存模型 JMM數據原子操作: read (讀取) :從主內存讀取數據 load (載

原创 JAVA Properties屬性集使用——實現持久化文本類配置文件

使用場景 在項目裏面,一些設置、量很少的數據字典等持久化起來可以選擇更輕量級的實現方式,即使用文本文件來存儲鍵值對,更改起來方便、實現當然比數據庫加表簡單得多。 代碼實現 public static void main(Stri

原创 JAVA TCP通信 Socket-ServerSocket類

1. UDP、TCP協議 java.net 包中包含提供了一些類和接口完成低層次的通信細節。我們可以直接使用這些類和接口,來專注於網絡程序開發,而不用考慮通信的細節。 java.net 包中提供了兩種常見的網絡協議的支持: U

原创 JAVA 緩衝流 BufferedInputStream-BufferedOutputStream-BufferedReader-BufferedWriter

1. 概述 緩衝流,也叫高效流,緩衝流是相比字節流、字符流具有更高讀寫性能的操作流,其中包括: 字節緩衝流:BufferedInputStream,BufferedOutputStream 字符緩衝流:BufferedReade

原创 JAVA JDK8新概念Stream流及操作集合案例

在Jdk1.8中引入了stream流的概念,這個“流”並不同於IO中的輸入和輸出流,它是Jdk中的一個類:java.util.stream.Stream,使用流進行處理可以幫助我們提升代碼的性能。 1. 常見應用 使用Stream

原创 MySql按天統計用戶增加數,沒有則置0

實現目標及最初的想法 主要是項目中要使用到統計每天的用戶增加總數,想用echarts圖標展現出來,最初的sql是這樣寫的 // me_user 用戶表 create_date 用戶創建日期 day 傳入的時間間隔(表示查詢從現

原创 JAVA Lambda表達式使用方法引用優化

Lambda表達式是對參數爲函數式接口(接口中只有一個抽象方法)的一種簡寫實現方式。 例子: 實現Consumer接口重寫accept()方法: public static void main(String[]args){

原创 Java實現動態代理——基於子類cglib、基於接口proxy

動態代理 特點 字節碼隨用隨創建,隨用隨加載。 作用 不修改源碼的基礎上對方法增強。 分類 基於接口的動態代理 基於子類的動態代理 1.基於接口的動態代理 涉及的類:Proxy 提供者:JDK官方 要求:被代理對象最少實現一個

原创 Spring IOC基礎 xml配置、註解配置

依賴注入:Dependency Injection IOC的作用:降低程序間的耦合(依賴關係) 依賴關係的管理:交給spring管理 1.使用xml配置 1.1 ApplicationContext與BeanFactory 對兩個

原创 JAVA線程併發工具類筆記整理Fork-Join、CountDownLatch、CyclicBarrier、Semaphore、Exchange、Callable、FutureTask

1. Fork-Join 什麼是分而治之? 規模爲N的問題,N<閾值,直接解決,N>閾值,將N分解爲K個小規模子問題,子問題互相對立,與原問題形式相同,將子問題的解合併得到原問題的解。分而治之思想應用:在快速排序、歸併排序、動態規

原创 Java Hash表實現案例及jdk哈希表實現常見面試題

1. 簡介 散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數

原创 SpringBoot2.X集成Activiti7實現工作流任務創建、執行(附源碼)

代碼親測有效,demo源碼已給出。 GitHub代碼地址:acitviti-demo 1. 環境準備 Idea安裝actiBPM插件 因爲某些原因,現在在market_place裏面搜不到這個插件,大家可以去官網下載(https:

原创 2020/4/12java面試刷題

每日練習 計算機組成原理 多道程序的執行一定不具備再現性。 正確答案: A 你的答案: B (錯誤) 錯 對 多道程序執行(分爲順序執行 和 併發執行)。 如果是順序執行: 可在現 如果是併發執行(僞並行):不可在現。 C

原创 SQL基礎 DDL、DML、DQL

SQL 1.什麼是SQL? Structured Query Language:結構化查詢語言 其實就是定義了操作所有關係型數據庫的規則。每一種數據庫操作的方式存在不一樣的地方,稱爲“方言”。 2.SQL通用語法 1.