原创 數據庫三大範式的理解

一: 引言        作爲一個數據庫的學習者,搞懂關係數據庫的三大範式是很有用的。然而教科書上有關數據庫範式的介紹都是採用學術性的定義,語法羞澀,讓人難懂,故寫下自己對數據庫範式的理解,給初學者提供幫助,也備日後查看。    

原创 MD5加密算法全解析

“MD5”加密算法全解析 大家好,我們現在來講解關於加密方面的知識,說到加密我認爲不得不提MD5,因爲這是一種特殊的加密方式,它到底特殊在哪,現在我們就開始學習它 全稱:message-digest algorithm 5

原创 註解簡單理解和原理

前言 在項目中會使用工具類來處理一些通用的業務,而工具類有一部分是通過註解來完成的。比如:對excel的上傳與解析。利用pojo封裝excel解析出來的數據,動態的實現excel的解析。 什麼是註解 註解也叫元數據,例

原创 鏈家筆試題--java實現兩個大整數相乘的算法

兩個字符串表示兩個非常大的數,請設計算法計算這兩個大數的乘積,結果用字符串表示。例如S1=”7832974972840919321747983209327”,S2=”1987432091904327543957”,設計算法計算出S

原创 AtomicInteger源碼分析——基於CAS的樂觀鎖實現

1 悲觀鎖與樂觀鎖 我們都知道,cpu是時分複用的,也就是把cpu的時間片,分配給不同的thread/process輪流執行,時間片與時間片之間,需要進行cpu切換,也就是會發生進程的切換。切換涉及到清空寄存器,緩存數據。然後重新

原创 ThreadLocal類的源碼分析與應用場景

前言 在實習的過程中項目有用到TreadLocal類,主要就是在日誌控制中,通過一個bean->RequestLog自定義類來保存request請求的參數,然後在控制檯中打印這些請求參數。在封裝請求的參數bean中可以維護一個靜態

原创 用戶態切換到內核態的3種方式

a. 系統調用 這是用戶態進程主動要求切換到內核態的一種方式,用戶態進程通過系統調用申請使用操作系統提供的服務程序完成工作,比如fork()實際上就是執行了一個創建新進程的系統調用。而系統調用的機制其核心還是使用了操作系統

原创 Java四種引用包括強引用,軟引用,弱引用,虛引用

強引用: 只要引用存在,垃圾回收器永遠不會回收 Object obj = new Object(); //可直接通過obj取得對應的對象 如obj.equels(new Object()); 而這樣 obj對象對後面new

原创 Spring Boot 揭祕與實戰 源碼分析 - 開箱即用,內藏玄機

前言 Spring Boot提供了很多”開箱即用“的依賴模塊,那麼,Spring Boot 如何巧妙的做到開箱即用,自動配置的呢? 開箱即用,內藏玄機 Spring Boot提供了很多”開箱即用“的依賴模塊,都是以spring-b

原创 n&(n-1)位運算的妙用

做oj遇到一道題,求二進制中1的個數。發現有大佬用來(n&n-1)。覺得很神奇。有空下來細想。確實是這麼個道理。記錄一下自己的分析過程 一、n-1發生了什麼 ①、二進制數n,n-1後,如果最後一位是0,將向前一位借2,2-1=1。

原创 java註解是怎麼實現的

下文所使用的java版本信息$ java -version java version “1.8.0_20” Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java Hot

原创 超實用的MySQL replace into 用法

超實用的 MySQL replace into 用法(insert into 的增強版) 今天項目中出現一個問題,大概就是向表中插入數據,如果有一個字段例如:username被設置成唯一索引,那麼該用戶再插入一條數據時會報錯。這時

原创 java8 手把手教你學會寫lambda表達式

前言 小白剛進入公司實習,什麼都需要學習。在閱讀大神的代碼,jdk1.8新特性運用的飛起,因此自己也要好好學習這一塊,希望能和大神一樣優秀,寫出更簡潔的代碼 - - Java8發佈以後,lambda表達式將大量替代匿名內部類的使用

原创 JDK8新特性:函數式接口@FunctionalInterface的使用說明

我們常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface註解。 通過JDK8源碼javadoc,可以知道這個註解有以下特點: 1、該註解

原创 如何在java中使用ConcurrentHashMap

ConcurrentHashMap(簡稱CHM)是在Java 1.5作爲Hashtable的替代選擇新引入的,是concurrent包的重要成員。在Java 1.5之前,如果想要實現一個可以在多線程和併發的程序中安全使用的Map,