Time of Update: 2017-01-19
之前的Java基礎系列中討論了Java最核心的概念,特別是物件導向的基礎。在Java進階中,我將對Java基礎進行補充,並轉嚮應用層面。大部分程式設計語言都能夠處理字串(String)。字串是有序的字元集合,比如"Hello World!"。在Java中,字串被儲存為String類對象。調用字串對象的方法,可以實現字串相關的操作。String類包含在java.lang包中。這個包會在Java啟動的時候自動import,所以可以當做一個內建類(built-in
Time of Update: 2017-01-19
我們之前一直在使用“對象”這個概念,但沒有探討對象在記憶體中的具體儲存方式。這方面的討論將引出“對象引用”(object reference)這一重要概念。對象引用我們沿用之前定義的Human類,並有一個Test類:複製代碼 代碼如下:public class Test{ public static void main(String[] args) { &
Time of Update: 2017-01-19
繼承(inheritance)是物件導向的重要概念。繼承是除組合(composition)之外,提高代碼重複可用性(reusibility)的另一種重要方式。我們在組合(composition)中看到,組合是重複調用對象的功能介面。我們將看到,繼承可以重複利用已有的類的定義。類的繼承我們之前定義類的時候,都是從頭開始,詳細的定義該類的每一個成員。比如下面的Human類:複製代碼 代碼如下:class Human{ /** &
Time of Update: 2017-01-19
我們已經寫了一些Java程式。之前的每個Java程式都被儲存為一個檔案,比如Test.java。隨後,該程式被編譯為Test.class。我們最終使用$java
Time of Update: 2017-01-19
我們已經嘗試去定義類。定義類,就是建立了一種類型(type)。有了類,我們接著構造相應類型的對象。更進一步,每個類型還應該有一個清晰的介面(interface),供使用者使用。我們可以在一個新類的定義中使用其他對象。這就是組合(composition)。組合是在Java中實現程式複用(reusibility)的基本手段之一。組合與"has-a"一個對象是另一個對象的資料成員。比如我們看之前提到的充電電筒的例子:一個充電電筒中的電池、LED燈、按鈕……
Time of Update: 2017-01-19
在Java基礎教程之從Hello
Time of Update: 2017-01-19
本文配合執行個體較為詳細的講解了Java的線程技術,相信對於深入理解Java程式設計有一定的協助。具體如下:很多人在學習JAVA時都對線程都有一定的瞭解,而當我們開始接觸Android開發時,才真真正正的發現了線程是多麽的重要,本文就把對Java線程的用法心得分享給大家,供大家參考。首先,大家一定要分清線程和進程不是一回事,進程是什麼呢?進程就如我們需要執行class檔案,而線程才是真正調用CPU資源來啟動並執行。一個class檔案一般只有一個進程,但線程可以有很多個,線程的執行是一種非同步執行
Time of Update: 2017-01-19
返回Json時格式化日期Date第一步:建立CustomObjectMapper類/** * 解決SpringMVC使用@ResponseBody返回json時,日期格式預設顯示為時間戳記的問題。需配合<mvc:message-converters>使用 */ @Component("customObjectMapper") public class CustomObjectMapper extends ObjectMapper { public
Time of Update: 2017-01-19
Java設計模式的模板方法模式定義一個操作中演算法的架構,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟。屬於行為類模式如下圖所示:事實上,模版方法是編程中一個經常用到的模式。先來看一個例子,某日,程式員A拿到一個任務:給定一個整數數組,把數組中的數由小到大排序,然後把排序之後的結果列印出來。經過分析之後,這個任務大體上可分為兩部分,排序和列印,列印功能好實現,排序就有點麻煩了。但是A有辦法,先把列印功能完成,排序功能另找人做。abstract
Time of Update: 2017-01-19
對於使用過宏的朋友應該知道,利用宏可以實現一個鍵綁定多個技能。例如如果排在前面的技能有CD,則跳過此技能,執行之後的技能。記得曾經玩DK,打怪的時候,就是用一個鍵,一直按就行了。在servlet裡的doGet和doPost方法,我們一般都把doGet請求發動到doPost裡來處理,這也是一種責任鏈的模式。這裡,有個宏,綁定了“冰血冷脈”和“寒冰箭”兩個技能,程式執行個體如下所示:package responsibility;/** * DOC 技能介面,要綁定的技能都要實現這個介面 *
Time of Update: 2017-01-19
Java的建立者模式與原廠模式有點類似,不過關注點不同。原廠模式往往只關心你要的是什麼,而不關心這個東西的具體細節是什麼。相對而言建立模式則是關心這個東西的具體細節的建立。拿建立人物來說,我們關心的不僅是建立一個人物,還要關心他的性別,膚色和名字,則可以使用建立者模式。程式執行個體如下所示:package builder;/** * * DOC 種族角色 * */public class Race { private String name;// 名字 private String
Time of Update: 2017-01-19
本文舉例說明兩種適配器模式,即類適配模式和對象適配模式,詳情如下:1.類適配模式:舉個例子來說明:在地球時代,所有坐騎都是只能跑,不能飛的,而現在很多坐騎在地球都可以飛了。假設,地球時代的坐騎只能跑,而現在的坐騎不僅能飛還能跑,我們可以用類適配模式來實現。這裡需要注意的是,適配器繼承源類,實現目標介面。範例程式碼如下:package adapter;/** * DOC 源 * */public class Sources { public void run() {
Time of Update: 2017-01-19
隨著互連網的蓬勃發展,越來越多的互連網企業面臨著使用者量膨脹而帶來的並發安全問題。本文著重介紹了在java並發中常見的幾種鎖機制。1.偏向鎖偏向鎖是JDK1.6提出來的一種鎖最佳化的機制。其核心的思想是,如果程式沒有競爭,則取消之前已經取得鎖的線程同步操作。也就是說,若某一鎖被線程擷取後,便進入偏向模式,當線程再次請求這個鎖時,就無需再進行相關的同步操作了,從而節約了操作時間,如果在此之間有其他的線程進行了鎖請求,則鎖退出偏向模式。在JVM中使用-XX:+UseBiasedLockingpack
Time of Update: 2017-01-19
本文執行個體講述了Java使用JDBC串連資料庫的實現方法,是Java資料庫程式設計裡非常實用的重要技巧。分享給大家供大家參考。具體如下:JDBC(Java Data Base Connectivity)資料庫連接,通常我們在編寫web應用或java應用程式要串連資料庫時就要使用JDBC。使用JDBC串連資料庫一般步驟有:1、載入驅動程式Class.forName(driver);2、建立連線物件Connection con =
Time of Update: 2017-01-19
本文執行個體分析了Java的異常機制,分享給大家供大家參考。相信有助於大家提高大家Java程式異常處理能力。具體分析如下:眾所周知,java中的異常(Exception)機制很重要,程式難免會出錯,異常機制可以捕獲程式中的錯誤,用來提高程式的穩定性和健壯性。java中的異常分為Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime
Time of Update: 2017-01-19
連續6個奇數a,a+2,a+4,a+6,a+8,a+10都是合數,求最小的a的暴力解法。先上結果,後面貼上代碼:1次連續n=9,連續值個數: 1;耗時: 0ms,總計: 0ms2次連續n=25,連續值個數: 1;耗時: 0ms,總計: 0ms3次連續n=91,連續值個數: 1;耗時: 0ms,總計: 0ms4次連續n=115,連續值個數: 3;耗時: 0ms,總計: 1ms5次連續n=115,連續值個數: 3;耗時: 0ms,總計: 1ms6次連續n=115,連續值個數: 3;耗時:
Time of Update: 2017-01-19
好久沒看關於java的書了,最近,看了James Gosling的<<Java程式設計語言>>,做了一些讀書筆記。這部分是關於記憶體回收的。一. 記憶體回收對象是使用new建立的,但是並沒有與之相對應的delete操作來回收對象佔用的記憶體。當我們完成對某個對象的使用時,只需停止該對象的引用:->將引用改變為指向其他對象->將引用指向null->從方法中返回,
Time of Update: 2017-01-19
本文為大家分享了一個滿足線上網頁交流需求的執行個體,由於java Socket實現的網頁版線上聊天功能,供大家參考,具體內容如下實現步驟:1、使用awt組件和socket實現簡單的單用戶端向服務端持續發送訊息;2、結合線程,實現多用戶端串連服務端發送訊息;3、實現服務端轉寄用戶端訊息至所有用戶端,同時在用戶端顯示;4、把awt組件產生的視窗介面改成前端jsp或者html展示的介面,java socket實現的用戶端改為前端技術實現。這裡首先實現第一步的簡易功能,痛點在於:1、沒有用過awt組件,
Time of Update: 2017-01-19
廢話不多說了,直接給大家貼java代碼了。具體代碼如下所示:/*支付流程*//****Controller.java 代碼如下:*/@RequestMapping(value = "/paySubmit.htm", method = RequestMethod.POST)public ModelAndView paySubmit(HttpServletRequest request,HttpServletResponse response, @RequestParam
Time of Update: 2017-01-19
實現Comparator介面Comparator介面的身影在JDK庫中隨處可見,從尋找到排序,再到反轉操作,等等。Java 8裡它變成了一個函數式介面,這樣的好處就是我們可以使用流式文法來實現比較子了。我們用幾種不同的方式來實現一下Comparator,看看新式文法的價值所在。你的手指頭會感謝你的,不用實現匿名內部類少敲了多少鍵盤啊。使用Comparator進行排序下面這個例子將使用不同的比較方法,來將一組人進行排序。我們先來建立一個Person的JavaBean。複製代碼