原创 leetcode單鏈表總結

首先要鏈表的node類。 public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 83:Remove

原创 tomcat&生命週期&事件監聽器

一:java中的事件監聽器    要實現java的監聽器需要實現以下三個對象:    1事件對象:一般繼承自java.util.EventObject,會作爲參數用於監聽處理方法中,要根據監聽事件的需求自定義事件對象。類似mvc模式中的m

原创 tomcat利用外觀模式保護數據

        外觀模式其實就是將細粒度的對象包裝成粗粒度的對象。舉個現實的例子,有四臺電腦可以隨便訪問,可能客戶a要訪問第一臺和第二臺,客戶b要訪問第二臺和第三臺....這種情況下互相間的調用關係是和複雜的。外觀模式就好比我通過一臺路由

原创 web請求過程總結

        瀏覽器統一通過應用層協議HTTP來交互數據,所謂HTTP請求和建立socket連接基本上是一個概念。瀏覽器上網其實就是通過給定的ip地址和默認的80端口和遠程服務器建立遠程連接。當你在瀏覽器輸入www.baidu.com按

原创 C++中堆、棧中的數據

1棧:由編譯器分配和清除的存儲區,存放局部變量和參數。 2堆:通過new分配的內存塊,需要程序通過delete去清除,程序運行結束後會由操作系統自動回收。 3全局變量和靜態變量存儲區:靜態變量存儲在內存中不需要實例化產生,非靜態變量生命週

原创 erp項目新建賬套邏輯

1:從百旺的網站點擊易記賬,會傳一個uuid,在本通過項目的登錄action中通過uuid查詢出登錄用戶的相關信息並存放到session中的User對象中。 2:判斷用戶類型,根據用戶類型取出對應的企業列表並顯示到頁面。 3:在頁面中選擇

原创 struct和class的區別

C++中struct對C中的struct進行了擴展,基本可以實現class的功能。 (1)struct和class的主要區別在於struct的默認訪問控制(包括訪問和繼承)是public、class的默認訪問控制是private。

原创 關於java中成員變量有默認初始化而局部變量沒有

在java中如果沒有給成員變量賦值java會自動賦0,而對於局部變量卻不會這是爲什麼呢?下面就討論下java如何給成員變量賦值的。 1普通成員變量:對於普通成員變量而言,當你實例化的時候通過構造函數java會自動賦0。如下 public

原创 KMP字符串匹配算法

給定字符串A"abcaabcabb",模式串B"abcab"。求模式串第一次出現在給定字符串中的索引,如果沒有則直接返回-1。 正常的解決方案是令i指向A中第一個元素,將A中元素一個一個和B中元素比較,如果不相等,則i++,重頭再和B中元

原创 單例模式

單例模式主要用於某個類在程序中只需要生成一個實例的情況。比如有一個實現服務器管理和請求分配的 負載均衡類,如果可以創建多個實例的話將造成服務器狀態的不一致以及請求分配衝突。所以我們不應該讓外面的程序隨隨便便就能new一個實例。此時我們就可

原创 232用兩個棧實現隊列

leetcode中要求用棧實現隊列的一下四個方法。 push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of

原创 java&最短路徑算法

這裏通過Dijkstra算法實現求最短路徑。 問題描述:一條環線地鐵線路A-B-C-D-E-F以及一條直線地鐵線路J-F-G-C-I。其中F和C是換乘車站,當我任意輸入一個起始車站以及終點站,求出最短的乘車路線。 問題分析:其實就是在無向

原创 public、private以及protected

C++中當着三個修飾符用來描述類中的成員時: 1、private只能由類中的函數以及友元函數訪問。 2、protected可以由類中的函數、友元函數以及子類函數訪問。但是不能被該類的對象訪問。 3、public可以由類中的函數、友元函數、

原创 工廠模式

工廠模式是創建類模式,主要是爲了將類的實例化和使用相分離。正常來講當我們要使用一個類的時候就直接new一下然後調用其方法就可以了,例子如下: public class Client { public static void main(S

原创 整數劃分

將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱爲正整數n的劃分。求正整數n的不 同劃分個數。 例如正整數6有如下11種不同的劃分: 6; 5+1; 4+2,4+1