原创 Virtualbox配置centos7網絡

方法一: 1.安裝centos7的時候注意選擇兩個網卡(配置CentOS7虛擬機裏面能上外網,而主機與CentOS7虛擬機也能連通) 兩個網卡分別爲: nat(虛擬機訪問互聯網,使用10.0.2.x段) host-only(虛擬機和主機互

原创 String對象不可變剖析

何爲不可變         如何理解String類型值的不可變,首先需要理解何爲不可變。          對於Java而言,除了primitive type值(即int, long, double等),其餘的都是對象。提煉一下,更普遍的

原创 筆試題(持續更新)

一,兩個棧實現一個隊列。        解題思路:棧的特點是先進後出,隊列的特點是先進後出,所以可以把隊列1中的元素pop到隊列2中,隊列2再次取出的時候就可以了。 /** * 兩個棧實現一個隊列: * 思路:先將數據存到第一個棧裏

原创 MySql性能優化之參數優化

1、目的: 通過根據服務器目前狀況,修改Mysql的系統參數,達到合理利用服務器現有資源,最大合理的提高MySQL性能。 2、服務器參數: 32G內存、4個CPU,每個CPU 8核。 3、MySQL目前安裝狀況。     MySQL目前安

原创 使用Spring Data JPA進行分頁與排序

一、導讀 如果一次性加載成千上萬的列表數據,在網頁上顯示將十分的耗時,用戶體驗不好。所以處理較大數據查詢結果展現的時候,分頁查詢是必不可少的。分頁查詢必然伴隨着一定的排序規則,否則分頁數據的狀態很難控制,導致用戶可能在不同的頁看到同一條數

原创 NIO實現簡易的多人聊天室

一、基本概念 1.Selector     選擇器,常用方法有:         Selector selector.open() 創建選擇器;         int selector.select() 監聽客戶端事件;        

原创 Lambda表達式效率低

一、驗證 廢話不多說,先上驗證代碼: List<Integer> list = new ArrayList<>(); for (int i = 0; i < 1000000; i++) {

原创 基於atomic包分析CAS原理

大家都知道,多線程下操作共享變量,會出現所謂的“線程安全問題”從而不能得到我們預期的結果,爲了解決這種問題,在早期的JDK版本中,提供的synchronized關鍵字來解決這種線程安全問題,而在JDK1.5以後的java.util.co

原创 Spring循環依賴問題

什麼是循環依賴? 循環依賴就是循環引用,指兩個或多個bean互相持有對方,比如說TestA引用TestB、TestB引用TestA,最終形成一個閉環。 注意:循環依賴不是指循環調用。 循環調用:指方法之間的環調用,循環調用是無解的,除非有

原创 SpringBoot項目不同環境的打包方案

分兩個場景進行闡述: 一、單工程 通常分爲開發環境(dev)和生產環境(prod)。讓我們開始吧! 1、在src/main/resources/下面創建兩個文件application-dev.yml,application-prod.ym

原创 squirrel-foundation java狀態機

介紹 squirrel-foundation:輕量級java有限狀態機 狀態機的要素 狀態機可歸納爲4個要素,即現態、條件、動作、次態。“現態”和“條件”是因,“動作”和“次態”是果。 現態:是指當前所處的狀態。 條件:又稱爲事件。當一個

原创 spring 啓動過程

  1.首先,對於一個web應用,其部署在web容器中,web容器提供其一個全局的上下文環境,這個上下文就是ServletContext,其爲後面的spring IoC容器提供宿主環境; 其次,在web.xml中會提供有contextL

原创 Nginx服務器之負載均衡策略(6種)

一、關於Nginx的負載均衡   在服務器集羣中,Nginx起到一個代理服務器的角色(即反向代理),爲了避免單獨一個服務器壓力過大,將來自用戶的請求轉發給不同的服務器。 二、Nginx負載均衡策略   負載均衡用於從“upstream”模

原创 Tomcat組成與工作原理

Tomcat是什麼 開源的Java Web應用服務器,實現了Java EE(Java Platform Enterprise Edition)的部分技術規範,比如 Java Servlet、Java Server Page、JSTL、J

原创 virtualBox+vagrant+centos.box搭建linux開發環境

Vagrant 簡介 Vagrant 是一款用來構建虛擬開發環境的工具,非常適合 php/python/ruby/java 這類語言開發 web 應用,“代碼在我機子上運行沒有問題”這種說辭將成爲歷史。 我們可以通過 Vagrant 封裝