原创 選擇排序原理及實現

選擇排序實現是每趟將循環的一一個數據與後面的數據相比較,得到最小元素,存儲在循環開始出,然後接着重複執行。 實現: public class Test{ public static void main(String[] args){

原创 java線程實現方式

第一種方式:繼承Thread類(複寫run方法) class MyThread extends Thread{ public void run(){ for(int i=0;i<10;i++){ try {

原创 synchronized和Lock的異同

相同點:Lock能完成synchronized所實現的所有功能 不同點:Lock有比synchronized更精細的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,並且必須在finally中釋

原创 java數組定義方式

通過二維數組舉例 1.int[][] array = new int[5][6]; 2.int[][] array = {{1,2,3},{4,5,6}}; 3.值得注意的是,java中二維數組定義可以使數組列數不相同,如 int[][]

原创 java 源碼與API

其實在我麼學習java的過程中,結合源碼和API學習室一個很不錯的選擇。 那麼我們在哪裏去查看java各個類的源碼呢? 其實,在jdk的安裝目錄下面我們會發現有個src.zip文件,這就是jdk爲我們提供的源碼,我們只需要解壓即可。至於如

原创 java for循環注意事項

在java中使用for循環時,有時候我們爲了簡便常常省略{} 而且大家也知道{}代表一個代碼塊,所以當我們想省略時應該小心 舉個例子 public static void mian(String[] args){ for(int i=0

原创 冒泡排序原理及實現

冒泡排序就是每次將重的泡泡下沉,輕的泡泡上浮。通過一次次反覆的操作,實現排序目的。 下面看一下冒泡的實現 public class Test{ public static void main(String[] args){ int

原创 java 垃圾回收機制

java中垃圾收集器用來監視java程序的運行,當對象不再使用時,就自動釋放對象所使用的內存。java使用一系列指針來跟蹤對象的各個引用 (並不是直接跟蹤每個對象),並用一個對象表將這些指針映射爲對象的引用。這樣,java的垃圾收集器

原创 構建模式

定義:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示. 原理:Builder模式是一步一步創建一個複雜的對象,它允許用戶可以只通過指定複雜對象的類型和內容就可以構建它們.用戶不知道內部的具體構建細節.Builde

原创 java內存管理

首先我們應該知道,java不要求程序員顯示的分配內存和釋放內存,這樣可以避免很多潛在問題。java在創建對象時會自動分配內存, 並當該對象的引用不存在時釋放這塊內存。 而所謂的內存管理就是對象的分配和釋放問題。在java中,程序員通過ne

原创 java clone

對於java裏面的clone方法,我們學習的時候會覺得不像其他方法一樣好理解,其實只要我們細心思考一下,就會覺得還是可以理解的。 在java中,clone()是聲明在Object中的,源碼是: public class Object{

原创 線程同步

我們知道Thread存在單繼承侷限,並且數據不能共享,所以我們用Runnable來理解線程同步(當然用共享數據通過Thread也可以實現同步)。 拿下面例子說 class MyThread implements Runnable{ pr

原创 java String注意事項

我們通過幾個例子來看一下String使用要注意的地方 1.String s = "a"+"b"+"c"+"d"+"e"+"f"+"g";這條語句創建了幾個對象? 我們看到這段話的第一反應就是a,b,c,d,e,f,g都是基本數據類型,沒有

原创 sleep和wait的區別

sleep()是使線程停止一段時間的方法。但是在sleep時間間隔期滿後,線程不一定立刻恢復。因爲這個時刻,其他線程可能正在運行,只要正在運行的線程沒有被調度放棄執行,sleep線程將不能得到CPU。除非從sleep中醒來的線程具有更高打

原创 原型模式

定義:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象. 原理:Prototype模式允許一個對象再創建另外一個可定製的對象,根本無需知道任何如何創建的細節,工作原理是:通過將一個原型對象傳給那個要發動創建的對象,這個要發動