原创 【Maven學習】Maven打包生成包含所有依賴的jar包

maven打包生成的普通jar包,只包含該工程下源碼編譯結果,不包含依賴內容。同時,maven提供以下方式生成包含所有依賴的jar文件,依賴以class的方式存在; 將此plugin添加到pom文件中

原创 【數據結構與算法】棧ADT結構應用的例子

1、【平衡符號】: 做一個空棧。讀入字符直到文件結尾。如果字符是一個開放符號,則將其推入棧中。如果字符是一個封閉符號,則當棧空時報錯。否則,將棧元素彈出,如果彈出的符號不是對應的開放符號,則報錯。在文件結尾,如果棧非空則報錯。 2

原创 【Maven學習】Maven打包生成普通jar包、可運行jar包、包含所有依賴的jar包

使用maven構建工具可以將工程打包生成普通的jar包、可運行的jar包,也可以將所有依賴一起打包生成jar; 一、普通的jar包 普通的jar包只包含工程源碼編譯出的class文件以及資源文件,而不包含任何依賴;同時還包括pom

原创 【數據結構與算法】最大子序列和問題的求解

題目:給一個int類型的數組,就最大子序列的和 解法:一共有四種算法,算法的時間複雜度分別爲: 【算法一】 結果是求一個子序列,即其實序列號和終止序列號,那我們就對所有可能的起止序列號的組合進行遍歷,求和,找到最

原创 【遠程調用框架】如何實現一個簡單的RPC框架(二)實現與使用

【如何實現一個簡單的RPC框架】系列文章: 【遠程調用框架】如何實現一個簡單的RPC框架(一)想法與設計 【遠程調用框架】如何實現一個簡單的RPC框架(二)實現與使用 【遠程調用框架】如何實現一個簡單的RPC框架(三)優化一:利用動態

原创 【遠程調用框架】如何實現一個簡單的RPC框架(五)優化三:軟負載中心設計與實現

【如何實現一個簡單的RPC框架】系列文章: 【遠程調用框架】如何實現一個簡單的RPC框架(一)想法與設計 【遠程調用框架】如何實現一個簡單的RPC框架(二)實現與使用 【遠程調用框架】如何實現一個簡單的RPC框架(三)優化一:利用動態

原创 大型網站架構的演化

本篇博客摘抄自書籍《大型網站系統與Java中間件實踐》與《大型網站技術架構核心原理與案例分析》。 什麼是大型網站 大型網站架軟件系統的特點 大型網站架構的演進 1 單機網站初始階段的網站架構 2 單機負載告警應用服務與數據服務分離 3

原创 【遠程調用框架】如何實現一個簡單的RPC框架(四)優化二:改變底層通信框架

【如何實現一個簡單的RPC框架】系列文章: 【遠程調用框架】如何實現一個簡單的RPC框架(一)想法與設計 【遠程調用框架】如何實現一個簡單的RPC框架(二)實現與使用 【遠程調用框架】如何實現一個簡單的RPC框架(三)優化一:利用動態

原创 【遠程調用框架】如何實現一個簡單的RPC框架(三)優化一:利用動態代理改變用戶服務調用方式

【如何實現一個簡單的RPC框架】系列文章: 【遠程調用框架】如何實現一個簡單的RPC框架(一)想法與設計 【遠程調用框架】如何實現一個簡單的RPC框架(二)實現與使用 【遠程調用框架】如何實現一個簡單的RPC框架(三)優化一:利用動態

原创 【Java JVM】Java 虛擬機類加載機制簡單總結

下面內容大部分爲閱讀《深入Java虛擬機》一書第七章後的摘要總結 1類加載過程 1 加載 2 連接 21驗證 22 準備 23 解析 3 初始化 2方法區與class對象 3類加載器 1、類加載過程 Java程序在編譯後,

原创 【Java 單例模式】Java 單例模式在多線程環境中可能存在的問題

在多線程環境下,使用延遲加載的方式實現單例模式,會出現錯誤。 例如,使用如下方式實現單例類: package study20170307; /** * Created by apple on 17/3/7. */ public c

原创 【Maven】Maven的SNAPSHORT版本與依賴更新

1、問題描述 今天在用Intellij Idea寫代碼的時候,遇到一個問題,大概形容一下: 分別有兩個Java工程,TestA、TestB均使用maven構建,TestB依賴TestA,即在TestB的pom文件中,寫出了對TestA的

原创 【Java String】Java 中的String類相關知識再認識

1、創建字符串的方式 (1)直接賦值 String str = “abc”; 此時,若字符串常量池中從沒有出現過“abc”,則在字符串常量池中存入一個字符串“abc”,將該字符串的引用賦值給str變量; (2)new一個String類型

原创 【Java IO模式】Java BIO NIO AIO總結

一同步與異步阻塞與非阻塞 1同步與異步 2阻塞與非阻塞 3IO模式 二BIO 概念描述 特點 代碼實現 三NIO 概念描述 特點 代碼描述 四AIO 一、同步與異步、阻塞與非阻塞 1、同步與異步 同步與異步的區別在於

原创 【Java 多線程】Java 如何停止線程

總結如下幾種方式使線程停止執行: (1)共享bool類型變量方式; (2)調用線程interrupt方式,同時通過isInterrupted方式判斷線程是否被停止,若停止則終止循環操作(線程類中循環外沒有其他操作); (3)調用線程