原创 JVM內存模型及垃圾回收算法

JVM內存模型:程序計數器,虛擬機棧,本地方法棧,Java堆,方法區 程序計數器:程序計數器是一塊較小的內存空間,它的作用可以看做是當前線程所執行的字節碼的行號指示器。字節碼解釋器工作時就是通過改變這個計數器的值來選取下一條需要執行的

原创 設計模式之觀察者模式

public class ObserverPattern { public ObserverPattern() { Teacher teacher = new Teacher(); Student student = new

原创 排序算法之直接插入排序

時間複雜度:平均O(n²)  最好O(n)  最壞O(n²) 空間複雜度:O(1) 穩定性:穩定 特點:大部分已有序時較好 public class InsertSort { public static void main(Strin

原创 排序算法之歸併排序

時間複雜度:平均O(nlogn)  最好O(nlogn)  最壞O(nlogn) 空間複雜度:O(n) 穩定性:穩定 特點:n大時較好 public class MergeSort { public static void main(

原创 設計模式之抽象工廠模式

/** * 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。 * <p/> * 一個抽象工廠類,可以派生出多個具體工廠類。 * <p/> * 每個具體工廠類可以創建多個具體產品類的實例。 * <p/> */ publ

原创 設計模式之生產者-消費者模式

public class ProducerConsumer { public static void main(String[] args) { PublicResource resource = new PublicResourc

原创 設計模式之單例模式

/** * 靜態內部類實現單例模式 */ public class SingletonPattern { private SingletonPattern() { } public static SingletonPatte

原创 排序算法之簡單選擇排序

時間複雜度:平均O(n²)  最好O(n²)  最壞O(n²) 空間複雜度:O(1) 穩定性:不穩定 特點:n小時較好 public class SelectSort { public static void main(String

原创 用兩個隊列實現一個棧

1.入棧時,將元素放入隊列q1 2.出棧時,先將q1中所有元素出隊列並放入隊列q2,保留q1中最後一個元素,將其輸出;然後將q2中所有元素出隊列並放回q1 package me.wcy.j2se.datastructure; impo

原创 《Material Design》設計 - 色彩篇 - UI調色板

原文:谷歌官博 調色板以一些基礎色爲基準,通過填充光譜來爲Android、Web和iOS環境提供一套完整可用的顏色。基礎色的飽和度是500。 Red500#F44336 50#FFEBEE 100#FFCDD2 200#EF9A9A

原创 Java位運算符

& 按位與 相同位的兩個數字都爲1,則爲1;若有一個不爲1,則爲0。(5&3=1) | 按位或 相同位只要一個爲1即爲1。(5|3=7) ^ 按位異或 相同位不同則爲1,相同則爲0。(5^3=6) ~ 按位取反 把內存中的0和1全部取反

原创 OSI與TCP/IP網絡模型

TCP/IP結構對應OSI TCP/IP OSI 應用層 應用層 表示層 會話層 主機到主機層(TCP)(又稱傳輸層) 傳輸層 網絡層(IP)(又稱互聯層) 網絡層 網絡接口層(又

原创 Java抽象類和接口的區別

1.抽象類只能被繼承,而且只能單繼承。接口需要被實現,而且可以多實現。 2.抽象類中可以定義非抽象方法,子類可以直接繼承使用。接口中都是抽象方法,需要實現類去實現。 3.抽象類使用的是is-a關係。接口使用的has-a系。 4.抽象類的成

原创 Java內部類爲什麼可以訪問外部類的成員

內部類都持有一個外部類的引用,這個是引用是 外部類名.this。內部類可以定義在外部類中的成員位置上,也可以定義在外部類中的局部位置上。當內部類被定義在局部位置上,只能訪問局部中被final修飾的局部變量。 如果內部類被靜態修飾,相當於外

原创 二叉樹之層序遍歷二叉樹

1.定義一個隊列,並將根結點入隊列 2.從隊列中取出結點輸出,如果該結點有子結點,則按左右順序將子節點如隊列 3.循環步驟2,直到隊列爲空 package me.wcy.j2se.datastructure; import java.