原创 裝載問題-貪心算法

        現有一個載重爲W的貨船,集裝箱i個,重量分別爲wi,在不考慮體積的情況下,要求裝載的數量最多。        這是一個簡單的最優裝載問題,類似01揹包問題,但考慮的不是價值而是數量,所以每次選取剩餘集裝箱中重量最輕的就可以,

原创 0-1揹包問題-回溯算法

    回溯算法類似於遍歷的求解,但不同於無腦遍歷的的地方是它在每一步都判斷是否滿足約束條件,及回溯點,所以可以理解爲有條件的遍歷。使用回溯算法求解01揹包最優解時需要建立二叉樹,樹有業務意義的深度爲物品數量n,加上根節點總深度爲n+1,除

原创 0-1揹包問題-分支界限法

        分支界限法和回溯法很像,不同之處是回溯法使用深度優先搜索,而分支界限法使用的是廣度優先搜索,並使用了隊列來記錄每次有有效結點,通過入隊出隊的方式遍歷有效結點。分支界限法在從活結點選擇下一擴展結點時的不同方法導致不同分支界限法

原创 0-1揹包問題-貪心算法

    今天用貪心算法給出揹包問題的一種解,雖然貪心算法不一定是最優解,但是在數據量極大時,貪心算法可以快速獲得接近最優解的答案package test; import java.util.ArrayList; import java.u

原创 0-1揹包問題-動態規劃

    揹包問題可以使用動態規劃獲得最優解,動態規劃的思路是:通過獲得單階段的最優解後,升級到多階段,每次升級時都使用上一階段的最優解計算,避免遍歷所有可能時產生的時間消耗。package test; import java.util.A

原创 馬踏棋盤

    馬踏棋盤屬於算法裏的經典問題,這裏用遞歸的方式給出一種解法:package test; /**  * Created by saishangmingzhu on 2018/11/25.  */ public class Mataq

原创 JVM四種垃圾收集器

Serial是什麼:使用單線程清理堆,Client虛擬機默認能做什麼:適用於單CPU、應用程序內存小於100MB的場景爲什麼:Minor GC和Full GC都會使應用線程暫停,但因爲堆的總量小,影響輕微,其他收集器在面對這種情況的時候也無

原创 解析json串

    使用java進行網頁抓取時,有時會直接獲取到json串,json串要獲取的數據嵌套複雜,這裏自己寫一個遞歸的方式進行解析指定名稱的數據,進行記錄,以便日後複用。    原有json串:{ "total": 3, "class":

原创 使用HtmlUnit實現數據抓取

HtmlUnit將HttpClient和java自帶的網絡API進行結合,使抓取數據變的更加容易、更加易於操作。HtmlUnit的底層還是封裝了HttpClient,但是經過封裝後,解析出來的內容更像一個網頁,而不是抽象的請求和響應,所以更

原创 jVisualVM遠程監控配置

    jVisualVM可以理解爲JConsole的升級版本,對java程序及JVM虛擬機的監控更爲全面。    下面簡單記錄下遠程配置JVisualVM的方法:    1.需要創建jstatd.all.policy文件,內容:grant

原创 Spring配置xml使用Advice

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt

原创 zookeeper

    說明:分佈式應用程序協調服務    設計:基於層次型的目錄樹的數據結構,所有節點都叫做znode,可以包含子znode,同時可以包含數據    功能:配置管理,服務治理在分佈式系統中,通常需要對多個服務器上應用系統的配置信息進行統一

原创 使用HttpClient實現數據抓取

    HttpClient可以通過模擬請求獲取響應的方式實現數據抓取,相較於HtmlUnit模擬頁面點擊的抓取方式,這種通過模擬請求的方式更加高效,可以有針對性實現一個請求來獲取響應數據,避免了頁面大連不必要的請求和響應。但同時,這個特點

原创 ClassCastException異常

    當我們在代碼中進行強制類型轉換,或程序自動進行類型轉換時,如果檢測到類型不匹配,通常情況下就會拋出ClassCastException異常,然後終止用戶請求。有一些類型的轉換在編譯階段就可以檢測出來,而有些則只有在運行時才能得到驗證

原创 SQL查詢執行過程

MYSQL查詢執行過程客戶端向服務器發送請求服務器查詢緩存,緩存中命中則結束,將結果返回客戶端(返回前會檢查用戶權限),否則繼續下邊步驟服務器端進行SQL解析、預處理,再由優化器生成對應的執行計劃根據執行計劃調用存儲引擎的API執行查詢將結