原创 多線程的面試題解答(一)
今天看到這篇文章 http://ifeve.com/javaconcurrency-interview-questions-base/ 嘗試解答一下里面的問題,陸續更新。 1 Java中有幾種方法可以實現一個線程 1.實現runna
原创 自學Spring WebFlux(一)
一、什麼是響應式編程(Reactive Progarmming) 響應式編程(Reactive Progarmming)是一種面向數據流和變化傳播的編程範式。 響應式編程主要處理二個問題: 1、異步非阻塞 2、流速控制 Reac
原创 RxJava-創建操作符
1、RxJava的主要創建操作符 操作符 描述 just 將一個或多個對象轉換成發射這個或這些對象的一個Observable from 將一個Iterable、Future或者一個數組轉換成一個Observable create 使用一個
原创 多線程的面試題解答(二)
1.什麼是可重入鎖ReentrantLock 線程可以進入任何一個它已經擁有鎖同步的代碼塊。同一個線程,外層函數獲取鎖後,內層仍然有獲取該鎖的代碼。ReentrantLock還提供了中斷鎖和定時鎖等待。 2.當一個線
原创 散列表
散列表就是數組+鏈表的模式,可以用於快速查找,緩存,避免重複 衝突,如果發生衝突,運行時間會是O(n),但是避免了衝突,運行時間則會是O(1),所以我們應該儘量避免衝突。 如何避免衝突: 較低的填裝因子,正常0.7爲最佳 良好的散
原创 選擇排序
選擇排序每次查找元素的最大值/最小值。 運行時間是n*n-1*n-2...*2*1 即O(n2),忽略常量 /** * @author: krauser * @date: Create in 下午10:07 2017/12/27
原创 二分法
二分法必須操作有序的元素列表 最多查詢log2N次 /** * @author: krauser * @date: Create in 下午6:13 2017/12/27 * @Description: 二分法 最多查詢次數log
原创 BIO、NIO、AIO的理解
先談談我對同步 異步 阻塞 非阻塞的認識: 同步:Client端發送請求,等待結果返回 eg: 小明去買東西,去超市買回來,東西買沒買到,立即知道結果 異步:Client端發送請求,不等待結果返回,(後續等Server端通知等) eg
原创 Maven私服Nexus的搭建和使用(Mac)
1.下載對應的安裝包https://www.sonatype.com/oss-thank-you-mac-tgz 注意:目前的版本有2.X 和 3
原创 快速排序
快速排序,先找到對比數據,然後遍歷其它元素,大於對比數據的放到more集合,小於對比數據的放到less集合,再對more集合和less集合排序 最大運行時間O(n2) 平均運行時間O(nlogn) 數據量很大的情況下,快速排序是災難性的,
原创 kettle的入門
kettle是一個用java寫的開源ETL工具,工作中用到了,分享一下使用 安裝: 下載解壓即可: 下載地址 https://nchc.dl.sourceforge.net/project/pentaho/Data%20Inte
原创 數組和鏈表的理解和運行時間分析
說一下存儲數據的二種基本方式:數組和鏈表 內存結構: 數組和鏈表的原理: 數組會先在內存中分配空間,插入和刪除元素,都會造成其它元素的重新排列,當然插入元素可以通過預留空間來處理,但是這樣會造成內存的浪費,如果預留空間不夠,你還是
原创 【求教】關於volatile關鍵字修飾對象型和數組的問題
各位大神,請教一個問題,我今天在sonar上看到一個報警,非基礎字段不建議用volatile修飾,內容如下: 我看網上的解釋是volatile只是確保對象的引用地址可見。對象的成員變量是不可見的 參考:https://blog.cs
原创 RxJava的一次業務嘗試
public ResultDTO makeStrategy(MakeDecisionDTO makeDecisionDTO) { final long current = System.currentTimeMill
原创 RxJava的線程操作
1、Scheduler RxJava是一個爲了異步編程而實現的庫,默認情況下,RxJava只在當前線程中運行,它是單線程的,此時Observable用於發射數據流,Observer用於接收和響應數據流,各種操作符(Operators)用於