原创 線程volatile

最近學習了多線程操作中的volatile關鍵字 1. 內存模型   大家都知道,計算機在執行程序時,每條指令都是在CPU中執行的,而執行指令過程中,勢必涉及到數據的讀取和寫入。由於程序運行過程中的臨時數據是存放在主存(物理內存

原创 二叉排序樹轉換成雙向鏈表

在面試過程中經常會出現二叉排序樹轉換成雙向鏈表的問題 思路:在二叉樹的學習中,我會發現,基本所有的問題都可以用樹的先序遍歷、中序遍歷、後序遍歷解決,所以我們可以使用這個思路來解決。 在此問題中,使用的是:後序遍歷。 /

原创 生產者-消費者

在學習java 的多線程中,生產者和消費者的問題是最經典的問題,因此在學習了java的多線程後 本文假設的是隻有一個籃子、一個生產者和消費者 首先需要創建一個類Apple(蘋果)的類,這個類是產品。 //創建一個蘋果類,作爲產品

原创 隊列和棧

兩個棧構成一個隊列 問題描述:用兩個棧組成一個隊列 這個很容易想出,隊列的特點是先進先出,棧的特點是先進後出。 思路:操作順序push(1),push(2),push(3),push(4),pop(),pop(),push(5),

原创 策略模式

這個策略模式講的很清楚,也很有意思。 這裏寫鏈接內容 點贊 收藏 分享 文章舉報 yanghuiysz 發佈了35 篇原創文章 · 獲贊 8 · 訪問量 2萬+

原创 設計模式——適配器模式

適配器模式有兩種: 類的適配器: //需要被適配的類 public class Adaptee{ public void printAdaptee(){ System.ou.println("適配器

原创 紅黑樹

最近在學紅黑樹,發現一篇比較好的介紹紅黑樹的博客。 http://www.cnblogs.com/skywang12345/p/3245399.html 點贊 收藏 分享 文章舉報

原创 JVM內存管理和垃圾回收

學習JVM最主要的兩大部分 內存管理 內存管理主要包括:程序計數器、堆、java棧、本地方法棧、方法區 - 程序計數器 程序計數器主要是用來存儲下一條要執行的指令的地址,這和在CPU中的程序計數器的作用相同。因此,每一個

原创 java IO流

JavaIO流的分類: 字節流、字符流 輸入流 輸出流 節點流 處理流 Tables 字節流 字符流 輸入流 InputStream Reader 輸出流 Outputstream Wr

原创 單例模式

單例模式 單例模式:顧名思義,使產生的對象個數只有一個。 那麼怎麼來使產生的對象只有一個呢,我們產生一個想法,將構造方法創建成private,這樣就只能在本類中產生對象。 1.餓漢式單例 public class Single{

原创 多線程——死鎖的例子

在面試的過程中可能會要求寫出一個死鎖的例子: public class Lock implements Runnable{ public static Object o1=new Object(); public

原创 工廠模式

java工廠模式分爲三種:簡單工廠、工廠方法、抽象工廠 簡單工廠: 又叫靜態工廠,是工廠模式三中狀態中結構最爲簡單的。主要有一個靜態方法,用來接受參數,並根據參數 來決定返回實現同一接口的不同類的實例。

原创 線程的yield方法和jion方法

yield()方法 線程的yield方法:讓當前運行線程回到可運行狀態,以允許具有相同優先級的其他線程獲得運行機會。 因此,使用yield()的目的是讓相同優先級的線程之間能適當的輪轉執行。但是,實際中無法保

原创 後綴表達式計算算術表達式

最近在學習二叉樹,學習了怎樣計算算術表達式 計算算術表達式的大體思路是: 1. 首先是將中綴表達式轉換成後綴表達式 2. 將後綴表達式,藉助棧就能輕易的求出值 例如: (1+2)x3的後綴表達式是 12+3x

原创 數據結構:遍歷一次獲得鏈表的倒數第N個節點

最近在學習鏈表中,發現一道題: 遍歷一次鏈表,獲得鏈表的倒數第N個節點 思路: 要想獲得倒數第N個節點,就會不自然的想到,倒數第N個節點是正數第M-N+1個節點(假設鏈表長度是M), 這時候,我們以,M-