原创 API 接口防刷

API 接口防刷顧名思義,想讓某個接口某個人在某段時間內只能請求N次。在項目中比較常見的問題也有,那就是連點按鈕導致請求多次,以前在web端有表單重複提交,可以通過token 來解決。除了上面的方法外,前後端配合的方法。現在全部由後端來控制

原创 爲什麼阿里禁止在 foreach 循環裏進行元素的 remove/add 操作

在阿里巴巴Java開發手冊中,有這樣一條規定:但是手冊中並沒有給出具體原因,本文就來深入分析一下該規定背後的思考。1.foreach循環foreach循環(Foreach loop)是計算機編程語言中的一種控制流程語句,通常用來循環遍歷數組

原创 阿里面試題:Mybatis中的Dao接口和XML文件裏的SQL是如何建立關係的?

一、解析XML首先,Mybatis在初始化SqlSessionFactoryBean的時候,找到mapperLocations路徑去解析裏面所有的XML文件,這裏我們重點關注兩部分。1、創建SqlSourceMybatis會把每個SQL標籤

原创 自動化運維持續集成

互聯網軟件的開發和發佈,已經形成了一套標準流程,最重要的組成部分就是持續集成(Continuous integration,簡稱 CI)。持續集成的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,代碼集成到主幹之前,必須通

原创 JVM系列 實用命令(jmap、jstat、jstack)

概論命令監控最方便,但是最優的方式是通過工具打開監控:比如jconsole、jvisualvm,幾乎全部的信息都有了,另外jvisualvm支持遠程監控,但是需要做一些配置使用命令的目的 獲取垃圾回收器的類型和系統參數 // jmap -h

原创 最全的JAVA知識彙總(附講解和思維導圖)

jvm 一行代碼是怎麼運行的首先,java代碼會被編譯成字節碼,字節碼就是java虛擬機定義的一種編碼格式,需要java虛擬機才能夠解析,java虛擬機需要將字節碼轉換成機器碼才能在cpu上執行。 我們可以用硬件實現虛擬機,這樣雖然可以提高

原创 在Linux上高效開發的7個建議

我們都知道被困在一段簡單代碼上數個小時是一個開發者挫敗感的由來。出了問題卻找不到bug會讓人身心俱疲。我認爲對於開發人員來講,節省時間是相當重要的。我發現自己經常浪費時間在有關Linux的簡單事情上,而我也曾目睹專家級的開發者僅僅使用合適的

原创 徹底理解maven

前言最近解決jar包衝突問題時,很頭疼,發現自己對maven的理解太膚淺了,很多細節都一知半解,於是最近又學習了一把maven,總結如下:基本概念maven有兩個最基本的概念: pom和lifecycle, 這裏的pom不是maven構建過

原创 Redis 概念以及底層數據結構

Redis 簡介REmote DIctionary Server(Redis) 是一個由SalvatoreSanfilippo寫的key-value存儲系統。 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於

原创 反射真的慢麼?動態代理會創建很多臨時class?

問題1.反射真的慢麼?2.動態代理會創建很多臨時class?3.屬性通過反射讀取怎麼實現的?當我們在IDE中編寫代碼的時候,打一個點號,IDE會自動彈出對應的屬性和方法名,當我們在debug的時候,IDE會將方法運行時方法內局部變量和外部實

原创 安裝Kali Linux操作系統Kali Linux無線網絡***

Kali Linux是一個基於Debian的Linux發行版,它的前身是BackTrack Linux發行版。在該操作系統中,自帶了大量安全和取證方面的相關工具。爲了方便用戶進行***測試,本書選擇使用Kali Linux操作系統。用戶可以

原创 使用lombok編寫優雅的Bean對象

使用java編寫代碼,十之八九都是在寫java類,從而構建java對象。lombok之前也說了不少,但使用了這麼多年,感覺還是有很多技巧可以使用的。 毫無疑問,使用lombok,編寫的java代碼很優雅,而使用起來和普通的java編碼方式創

原创 大數據開發:剖析Hadoop和Spark的Shuffle過程差異

一、前言 對於基於MapReduce編程範式的分佈式計算來說,本質上而言,就是在計算數據的交、並、差、聚合、排序等過程。而分佈式計算分而治之的思想,讓每個節點只計算部分數據,也就是隻處理一個分片,那麼要想求得某個key對應的全量數據,那就必

原创 一個線程罷工的詭異事件

背景事情(事故)是這樣的,突然收到報警,線上某個應用裏業務邏輯沒有執行,導致的結果是數據庫裏的某些數據沒有更新。 雖然是前人寫的代碼,但作爲 Bug maker&killer 只能咬着牙上了。 因爲之前沒有接觸過出問題這塊的邏輯,所以簡單理

原创 京東到家基於netty與websocket的實踐

背景在京東到家商家中心繫統中,商家提出在 Web 端實現自動打印的需求,不需要人工盯守點擊打印,直接打印小票,以節約人工成本。 解決思路 關於問題的思考邏輯: 第一種:想到的是可以用ajax來輪詢服務端獲取最新訂單,也就是pull。 第二種