原创 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 封裝