原创 濃濃棕情之自產自消

今天是端午節,祝大家端午節快樂。今年的疫情讓很多人放棄了出行的計劃,宅在家裏,我也是無聊,想到寫點什麼東西和大家分享下,希望有感興趣的看看,如果有什麼想法歡迎交流。 生產者和消費者是軟件世界裏很尋常的場景,然而大多數程序員平時寫代碼不會用

原创 爲什麼要繼承

面嚮對象語言的幾大特徵包括抽象、繼承、封裝和多態,對於繼承大家都耳熟能詳,而且也很容易理解,子類可以繼承父類的屬性和方法,然而大家是否在程序中真正去用,或者真正理解了爲什麼要繼承,通過面試發現都是背概念。今天想通過一個例子去說明爲什麼要繼

原创 迅速掌握Spring框架

迅速掌握Spring框架 Spring框架是SSH三劍客當中比較難理解的,然而它的意義對於軟件來說是一場革命,完全顛覆了軟件開發的流程。例如控制反轉、依賴倒置這些高深的概念讓我們無比膜拜,又讓我們覺得離自己的日常使用是那麼遙遠,這

原创 Java實現模擬路由功能

本文實現根據路由表適配最優的號段,選擇路由器。選擇路由的規則:  1、號段num和網元都不能重複   2、號段num不能重複   3、選擇號碼適配長度最長的網元爲路由目的地 RouterService.java package com.d

原创 編程題階乘迷局

大廠筆試面試題,給定一個整數,求該整數的階乘,例如輸入5,結果是5*4*3*2*1=120。 拿到題目心中狂喜,迅速三下五除二就寫出來: public int fun1(int i) { int k = 1;

原创 Spring MVC 攔截器原理解析

Spring MVC支持配置多個攔截器,http請求將被配置的攔截器處理,處理後報錯信息拋異常,異常將被DispatcherServlet捕獲處理,每個攔截器對應的handler處理異常,包裝成ModelAndView返回。 web.xm

原创 CountDownLatch多任務處理利器

CountDownLatch 是由java併發包提供的一個同步計數器,從字面意義上去理解可以分成兩部分CountDown 和 Latch,CountDown就是計數的意思,Latch是門閂,這個同步工具就是通過保證多線程環境下,通過門閂限

原创 CountDownLatch使用場景

CountDownLatch 是由java併發包提供的一個同步計數器,從字面意義上去理解可以分成兩部分CountDown 和 Latch,CountDown就是計數的意思,Latch是門閂,這個同步工具就是通過保證多線程環境下,通過門閂限

原创 切繩子算乘積

題目: 給你一段繩子,這段繩子的長度是正整數(繩子長度大於0),你可以選擇切或者不切,如果切,分成兩段,保證兩段的長度都是整數,如果可以繼續切,你可以選擇繼續,最後要求每一段繩子的長度的乘積最大。 思考一: 如果每次從中間切似乎得到的乘積

原创 xml的兩種解析方式

xml解析是日常項目中用到比較多的技能,無論是配置參數或者數據都可以保存在xml文件中,同時也可以將xml作爲傳輸數據的一種格式。本文將介紹兩種基本解析方式:xml字符串解析和xml文件解析。 xml字符串解析package com.di

原创 增長黑客:我們不能忽視的力量

        增長黑客被定義爲創業公司的用戶與收入增長祕籍,讀罷之後我更感覺是一本非常適合產品經理閱讀的書,很多產品經理在規劃產品的適合並沒有從實際出發,而是停留在自己的烏托邦中,因此推出後很多都石沉大海,當然有的產品通過多次改版逐

原创 工廠模式及在Spring中的應用

工廠模式是最基本的也是最重要的模式,因爲它方便我們能寫出高質量、高效率的代碼。只有掌握了工廠模式,我們纔不會重複造輪子。今天將從最簡單的工廠模式開始一步步深入講解,告訴大家自己寫是怎麼用的,框架又是如何實現,我們能從框架實現獲得怎麼樣的靈

原创 Java解析Property文件

在Java項目中一些配置參數保存在Property文件中,這樣能保證不修改原代碼直接修改Property文件。 PropertyParser.java package com.discover.parse; import java.io

原创 JVM知識

JVM是Java的核心,雖然對於普通開發者這塊平常可能不太關注,但是如果一些基本原理不理解,有的時候發生一些疑難異常就會讓我們摸不到頭腦,無法解決這種意想不到的問題。JVM是通過指令系統、寄存器、棧結構、存儲區域和垃圾回收來執行我們的程序

原创 JUnit的使用

JUnit是一款做單元測試比較好的工具,很多小公司都沒有進行單元測試,都一般採用的是黑盒測試,這樣通過人力去測試,很多時候效率並不高,這裏推採用JUnit進行單元測試,用一個例子說明單元測試是怎麼玩的,其實很簡單,最重要的是能對接口和函數