原创 架構師系列一:架構師的職責

軟件工程的目的是控制複雜性,而不是創造複雜性。 軟件架構是當軟件複雜性提高後,催生出來的一些列準則。在軟件裏,架構指爲客戶構建系統。軟件存在的目標是爲了自動化商業流程和人類行爲。架構的定義如下: 1)需求 系統的使命可以通過一組需求來描

原创 Java實現計數排序

輸入:A[0..n]待排序數組,B[0..n]存放排序後的數組,k表示輸入數組每個元素都是在0到k之間的整數。 代碼 public class CountingSort {public final void CountSort(int [

原创 Java實現快速排序

一、快速排序原理 分解:數組A[p..r]被劃分爲兩個子數組A[p..q-1]和A[q..r],使得A[p..q-1]中的每一個元素都小於等於A[q],而A[q]也小於等於A[q..r]中的每一個元素。 解決:通過遞歸調用快速排序,對子數

原创 分佈式系統設計原理與方案

 一直在思考分佈式系統設計的問題,業務對象原封不動的情況下部署在客戶端和服務器端,可以根據配置文件選擇是連接服務器還是連接本地的數據庫,這個問題讓我絞盡腦汁,我總是設想的客戶端與服務器端通信的方式是最低端的Socket。花了兩個晚上研究

原创 數據結構學習二:棧

棧    限制插入和刪除操作只能在一個位置上進行的表。對棧的基本操作有Push(進棧)和Pop(出棧),前者相當於插入,後者則是刪除。棧也叫作先進後出表。 本文使用鏈表實現棧。 #pragma once /* * 鏈表類型聲明 */ s

原创 java前後端技術棧

原创 數據結構學習一:鏈表

一、數據結構的基礎 1)鏈表 常見的定義 鏈表由一系列不必在內存相連的項組成。每個項包含數據域和指向該項的後繼項的指針。ps:指針簡單理解爲地址,通過指針可以獲取到地址的內存單元,使用指針來讀取數據。C++標準規定,指針分爲兩類:

原创 Java編程練習系列一:獲取給定範圍內的所有素數

素數的數學定義        質數(prime number)又稱素數,有無限個。除了1和它本身以外不再被其他的除數整除。根據算術基本定理,每一個比1大的整數,要麼本身是一個質數,要麼可以寫成一系列質數的乘積,最小的質數是2。 那麼在編程

原创 設計模式系列一:單例模式

單例模式 主要用於保證一個類只有一個實例,對外提供一個全局的訪問點來獲取該實例。是所有設計模式中最簡單的模式。 實現代碼(c#) using System; using System.Collections.Generic; us

原创 設計模式系列模式總預覽

設計模式可以分爲三類: 1)創建型設計模式:主要負責對象實例化,將客戶從所需要實例化的對象中解耦。 2)結構型設計模式:把類或對象組合到更大的結構中。 3)行爲型設計模式:涉及類和對象如何交互及分配職責。