原创 項目開發的一點感悟

開發多年以來,深深的體會到做項目的幾個重要性,越是大項目,下面的重要性越顯得尤爲重要。 一.開發流程規範化的重要性 爲什麼要提開發流程的規範性很重要呢?原因很簡單,如果開發團隊沒有開發流程的規範,那麼就像軍隊沒有了軍紀一樣,各自按照自己的

原创 提升java業務代碼優雅度之函數式接口編程

如何提高java代碼優雅度,java8中函數式編程是不得不提的一個重要模塊。下面直奔主題: 一.函數式接口的定義 被@FunctionalInterface註釋的接口,滿足@FunctionalInterface註釋的約束; 沒有被@

原创 微基準測試JMH使用介紹

一.概述 JMH,即Java Microbenchmark Harness,是專門用於代碼微基準測試的工具套件。何謂Micro Benchmark呢?簡單的來說就是基於方法層面的基準測試,精度可以達到微秒級。當你定位到熱點方法,希望進一步

原创 根據經緯度計算地球兩點之間的距離

前言 之前做過的很多項目中都有涉及到根據經緯度計算兩點之間的距離,然後做排序。這個場景在很多外賣App或者小程序上經常看到,例如距離2km,<100m等等。 工具類1 public class LocationUtil { /

原创 java基礎之易錯使用方式一

前言 最近做項目,一不小心犯了一個低級錯誤,當時覺得應該有問題,但是並未自測,聯調的時候發現了,很是尷尬,今天記錄一下,避免日後再犯。這個也是初學者比較容易犯的問題,但是也不免有開發幾年了掉坑裏的。 代碼 public class Bu

原创 Centos6在VMware中的安裝和配置

前言 繼上一篇VMware的安裝,本篇繼續Centos的安裝。話不多說,直接開搞。 一.Centos下載 centos6.8 64位 鏈接:https://pan.baidu.com/s/1Ms29YHaK1VMFA14PiJjeeQ 

原创 VMware Workstation 14下載與安裝

一.下載Windows版的VMware Workstation 14 方式一: 鏈接:https://pan.baidu.com/s/1D-f7Dau5hWjb81LrMO165Q  提取碼:808u 方式二: 官網地址:https://

原创 List轉Map思想的妙用

       最近做項目,遇到了很多雙層for循環組裝數據的情況,有的甚至是三層循環,數據組裝比較麻煩,同事看到我有一個三層的for循環,說你這個可以優化成兩層,三層嵌套的太深了,數據量大的情況下,性能會比較差。是的,大家都知道for循環

原创 Guava實現布隆過濾器

import com.google.common.hash.BloomFilter; import com.google.common.hash.Funnels; import java.nio.charset.Charset; /

原创 Memcache VS Redis 簡單對比

Memcache 系統業務以純KV的緩存爲主,數據量大,併發業務量大,Memcache比較合適 Memcache將所有數據存儲在物理內存中,Redis則有自己的VM機制,當數據超量時,會引發swap,影響性能 Memcache使用多線程的

原创 循環有序的發送通知實現方案

背景       上週五,同事從21樓下到14樓問我一個問題,他們的產品想實現一個有序並且循環的去發送通知的一個需求。同事一時沒想到比較好的解決方案,便找我來討論一下,有沒有更優的實現方式。於是我們便在14樓討論了一番,得出一個相對比較好

原创 java設計模式之策略模式的優雅實現

前言 策略模式是開發中常用的一種設計模式,主要解決在有多種算法相似的情況下,使用 if...else 所帶來的複雜和難以維護的問題。看了網上很多關於策略模式的上下文切換類實現都不甚優雅,故而想總結分享一篇自我感覺比較優雅的處理方式,方便大

原创 設計模式的七大設計原則解讀

設計模式一共有七大設計原則,其中包括開閉原則,單一職責原則,里氏替換原則,依賴導致原則,接口隔離原則,迪米特法則,合成複用原則。 一、開閉原則(Open Close Principle)        開閉原則是設計模式的總原則,開閉原則

原创 Redis常用命令彙總

前言 Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server

原创 Guava中字符串切割和拼接的強大API

public class Test { public static void main(String[] args) { String str = "a, ,b,c, ,d,e";