Fork me on GitHub
摘要: 一、Spring Boot 系列誕生原因 上學那會主要學的是 Java 和 .Net 兩種語言,當時對于語言分類這事兒沒什么概念,恰好在2009年畢業那會陰差陽錯的先找到了 .Net 的工作,此后就開始了漫長的 .Net 編程之旅,說實話最初的“編程思想”的形成和確立都是在頭幾年做 .Net 的時候閱讀全文
posted @ 2018-11-24 22:31 王磊的博客 閱讀(470) 評論(0) 編輯
摘要: 反射和動態代理放有一定的相關性,但單純的說動態代理是由反射機制實現的,其實是不夠全面不準確的,動態代理是一種功能行為,而它的實現方法有很多。要怎么理解以上這句話,請看下文。 一、反射 反射機制是 Java 語言提供的一種基礎功能,賦予程序在運行時自省(introspect,官方用語)的能力。通過反射閱讀全文
posted @ 2018-12-11 18:33 王磊的博客 閱讀(99) 評論(0) 編輯
摘要: 導讀:本文你將獲取到:同/異步 + 阻/非阻塞的性能區別;BIO、NIO、AIO 的區別;理解和實現 NIO 操作 Socket 時的多路復用;同時掌握 IO 最底層最核心的操作技巧。 BIO、NIO、AIO 的區別是什么? 同/異步、阻/非阻塞的區別是什么? 文件讀寫最優雅的實現方式是什么? NI閱讀全文
posted @ 2018-12-04 17:40 王磊的博客 閱讀(239) 評論(1) 編輯
摘要: 導讀:Map竟然不屬于Java集合框架的子集?隊列也和List一樣屬于集合的三大子集之一?更有隊列的正確使用姿勢,一起來看吧! <! more Java中的集合通常指的是Collection下的三個集合框架List、Set、Queue和Map集合,Map并不屬于Collection的子集,而是和它平閱讀全文
posted @ 2018-11-28 08:27 王磊的博客 閱讀(113) 評論(0) 編輯
摘要: 一、Spring Boot 系列誕生原因 上學那會主要學的是 Java 和 .Net 兩種語言,當時對于語言分類這事兒沒什么概念,恰好在2009年畢業那會陰差陽錯的先找到了 .Net 的工作,此后就開始了漫長的 .Net 編程之旅,說實話最初的“編程思想”的形成和確立都是在頭幾年做 .Net 的時候閱讀全文
posted @ 2018-11-24 22:31 王磊的博客 閱讀(470) 評論(0) 編輯
摘要: 樂觀鎖、悲觀鎖、公平鎖、自旋鎖、偏向鎖、輕量級鎖、重量級鎖、鎖膨脹...難理解?不存的!來,話不多說,帶你飆車。 上一篇介紹了線程池的使用,在享受線程池帶給我們的性能優勢之外,似乎也帶來了另一個問題:線程安全的問題。 那什么是線程的安全問題呢? 一、線程安全問題的產生 線程安全問題:指的是在多線程編閱讀全文
posted @ 2018-11-22 09:34 王磊的博客 閱讀(215) 評論(0) 編輯
摘要: 本文你將獲得以下信息: 線程池源碼解讀 線程池執行流程分析 帶返回值的線程池實現 延遲線程池實現 為了方便讀者理解,本文會由淺入深,先從線程池的使用開始再延伸到源碼解讀和源碼分析等高級內容,讀者可根據自己的情況自主選擇閱讀順序和需要了解的章節。 一、線程池優點 線程池能夠更加充分的利用CPU、內存、閱讀全文
posted @ 2018-11-19 17:25 王磊的博客 閱讀(159) 評論(0) 編輯
摘要: 一、前言 延遲隊列的使用場景:1.未按時支付的訂單,30分鐘過期之后取消訂單;2.給活躍度比較低的用戶間隔N天之后推送消息,提高活躍度;3.過1分鐘給新注冊會員的用戶,發送注冊郵件等。 實現延遲隊列的方式有兩種: 1. 通過消息過期后進入死信交換器,再由交換器轉發到延遲消費隊列,實現延遲功能; 2.閱讀全文
posted @ 2018-11-16 10:01 王磊的博客 閱讀(243) 評論(1) 編輯
摘要: 一、前言 RabbitMQ是一個開源的消息代理軟件(面向消息的中間件),它的核心作用就是創建消息隊列,異步接收和發送消息,MQ的全程是:Message Queue中文的意思是消息隊列。 1.1 使用場景 1. 削峰填谷:用于應對間歇性流量提升對于系統的“破壞”,比如秒殺活動,可以把請求先發送到消息隊閱讀全文
posted @ 2018-11-13 09:11 王磊的博客 閱讀(308) 評論(0) 編輯
摘要: 一、介紹 JUnit是一款優秀的開源Java單元測試框架,也是目前使用率最高最流行的測試框架,開發工具Eclipse和IDEA對JUnit都有很好的支持,JUnit主要用于白盒測試和回歸測試。 白盒測試:把測試對象看作一個打開的盒子,程序內部的邏輯結構和其他信息對測試人 員是公開的; 回歸測試:軟件閱讀全文
posted @ 2018-11-05 12:52 王磊的博客 閱讀(334) 評論(2) 編輯
摘要: 一、簡介 Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key Value數據庫,并提供多種語言的API,Redis也是技術領域使用最為廣泛的存儲中間件,它是「Remote Dictionary Service」首字母縮寫,也就是「遠程字典服務」。 <! m閱讀全文
posted @ 2018-11-03 11:52 王磊的博客 閱讀(232) 評論(0) 編輯
摘要: 一、簡介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么這些日志框架之間有著怎樣的關系?誕生的原因又是解決什么問題?下面一起來看。 <! more 1.1 JUL Java有自己的日志框架JUL(Java Util Logging)在jav閱讀全文
posted @ 2018-10-30 19:08 王磊的博客 閱讀(310) 評論(0) 編輯
摘要: 一、簡介 在當下這個前后端分離的技術趨勢下,前端工程師過度依賴后端工程師的接口和數據,給開發帶來了兩大問題: <! more 問題一、后端接口查看難:要怎么調用?參數怎么傳遞?有幾個參數?參數都代表什么含義? 問題二、返回數據操作難:數據返回不對或者不夠怎么辦?怎么才能靈活的操作數據? 這是很多公司閱讀全文
posted @ 2018-10-24 09:31 王磊的博客 閱讀(559) 評論(2) 編輯
摘要: 一、概述 在開始學習Thread之前,我們先來了解一下 線程和進程之間的關系: 線程(Thread)是進程的一個實體,是CPU調度和分派的基本單位。 線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。 線程和進程的關系是:線程是屬于進程的,線程運行在進程空間內,同一進程所產生閱讀全文
posted @ 2018-10-09 19:40 王磊的博客 閱讀(300) 評論(0) 編輯
摘要: 一、MongoDB簡介 1.1 MongoDB介紹 MongoDB是一個強大、靈活,且易于擴展的通用型數據庫。MongoDB是C++編寫的文檔型數據庫,有著豐富的關系型數據庫的功能,并在4.0之后添加了事務支持。 隨著存儲數據量不斷的增加,開發者面臨一個困難:如何擴展數據庫?而擴展數據庫分為橫向擴展閱讀全文
posted @ 2018-10-08 09:33 王磊的博客 閱讀(656) 評論(1) 編輯
摘要: 一、簡介 1.1 MyBatis Generator介紹 MyBatis Generator 是MyBatis 官方出品的一款,用來自動生成MyBatis的 mapper、dao、entity 的框架,讓我們省去規律性最強的一部分最基礎的代碼編寫。 1.2 MyBatis Generator使用 M閱讀全文
posted @ 2018-09-30 10:13 王磊的博客 閱讀(304) 評論(0) 編輯
摘要: 一、簡介 1.1 MyBatis介紹 MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC代碼和手動設置參數以及獲取結果集。 1.2 MyBatis發展史 MyBatis 原本是apache的一個開源項目iBatis, 201閱讀全文
posted @ 2018-09-12 19:13 王磊的博客 閱讀(546) 評論(0) 編輯
摘要: 一、前言 Hexo 是一個基于 NodeJs 博客框架,可以快速的幫我們搭建一個博客系統,Hexo使用的是Markdown(下文簡稱MD)解析文章的,在幾秒內即可利用靚麗的主體生成靜態網頁。 <! more 推薦使用 Hexo 有三大理由: 有大量的主題可供人們選擇 使用MD解析文章,MD是現在主流閱讀全文
posted @ 2018-09-07 17:19 王磊的博客 閱讀(372) 評論(0) 編輯
摘要: 一、Spring Data JPA 介紹 JPA(Java Persistence API)Java持久化API,是 Java 持久化的標準規范,Hibernate是持久化規范的技術實現,而Spring Data JPA是在 Hibernate 基礎上封裝的一款框架。 開發環境 Spring Boo閱讀全文
posted @ 2018-09-07 10:06 王磊的博客 閱讀(401) 評論(0) 編輯
摘要: 一、Thymeleaf介紹 Thymeleaf是一種Java XML / XHTML / HTML5模板引擎,可以在Web和非Web環境中使用。它更適合在基于MVC的Web應用程序的視圖層提供XHTML / HTML5,但即使在脫機環境中,它也可以處理任何XML文件。它提供了完整的Spring Fr閱讀全文
posted @ 2018-09-05 19:49 王磊的博客 閱讀(327) 評論(0) 編輯
摘要: 一、FreeMaker介紹 FreeMarker是一款免費的Java模板引擎,是一種基于模板和數據生成文本(HMLT、電子郵件、配置文件、源代碼等)的工具,它不是面向最終用戶的,而是一款程序員使用的組件。 FreeMarker最初設計是用來在MVC模式的Web開發中生成HTML頁面的,所以沒有綁定S閱讀全文
posted @ 2018-08-30 11:18 王磊的博客 閱讀(439) 評論(1) 編輯
摘要: 一、簡介 提起Java不得不說的一個開發場景就是Web開發,也是Java最熱門的開發場景之一,說到Web開發繞不開的一個技術就是JSP,因為目前市面上仍有很多的公司在使用JSP,所以本文就來介紹一下Spring Boot 怎么集成JSP開發,以及生產環境的詳細部署方法。 二、集成JSP 開發環境 S閱讀全文
posted @ 2018-08-27 09:17 王磊的博客 閱讀(848) 評論(5) 編輯
摘要: 一、關于Spring Boot 在開始了解Spring Boot之前,我們需要先了解一下Spring,因為Spring Boot的誕生和Spring是息息相關的,Spring Boot是Spring發展到一定程度的一個產物,但并不是Spring的替代品,Spring Boot是為了讓程序員更好的使用閱讀全文
posted @ 2018-08-24 17:00 王磊的博客 閱讀(737) 評論(0) 編輯
摘要: 一、搭建Java環境 系統環境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下載JDK 官網地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 選擇相應的版本,點擊jdk,進入下載頁面,閱讀全文
posted @ 2018-08-24 14:58 王磊的博客 閱讀(605) 評論(0) 編輯
摘要: 前言 本文將系統的介紹一下RabbitMQ集群架構的特點、異常處理、搭建和使用中要注意的一些細節。 知識點 一、為什么使用集群? 二、集群的特點 三、集群異常處理 四、集群節點類型 五、集群搭建方法 六、鏡像隊列 一、為什么使用集群? 內建集群作為RabbitMQ最優秀的功能之一,它的作用有兩個: 閱讀全文
posted @ 2018-07-25 20:20 王磊的博客 閱讀(2613) 評論(1) 編輯
摘要: 概述 本文重點介紹的Docker的使用,以及如何部署RabbitMQ集群,最基礎的Docker安裝,本文不做過多的描述,讀者可以自行度娘。 Windows10上Docker的安裝 因為本人用的是Windows系統,所有推薦一個不錯的安裝文章,詳見:https://blog.csdn.net/xiao閱讀全文
posted @ 2018-07-24 20:24 王磊的博客 閱讀(1744) 評論(0) 編輯
耐克篮球多少钱