Time of Update: 2017-01-19
單例模式動機有時候只有一個類的執行個體是很重要的。比如,一個系統應該只有一個視窗管理執行個體。單例模式是最簡單設計模式:類負責執行個體化自己,確保只有一個執行個體,並且提供一個訪問這個執行個體的入口。目的1. 確保只有一個執行個體被建立。2. 提供訪問這個執行個體的入口。使用final確保被建立一次,private的建構函式確保不被執行個體化。public的getInstance方法確保外部能夠訪問。下面是餓漢模式:public class Singleton { private
Time of Update: 2017-01-19
本文執行個體講述了java採用中文方式顯示時間的方法。分享給大家供大家參考。具體如下:其中t為秒,比如有時候需要計算兩個任務相差多久,或者該任務何時結束或者某個任務間隔多久重新啟動等適用於本方法。如果是微秒,自己先/1000private static String chinese_period(int t){ int y, n, d, h, m, s; String time; if(t<=0) return "立即"; s = t % 60; t /= 60; m = t %
Time of Update: 2017-01-19
本文執行個體講述了java實現變更檔案查詢的方法。分享給大家供大家參考。具體如下:自己經常發布包時需要尋找那些檔案時上次發包後更新的資料檔案,所以寫了這個發布包,拷貝輸出的命令,dos視窗下執行,為啥不直接複製檔案,因為java拷貝檔案會修改檔案最後修改日期,所以採用dos下的拷貝。/* * * 更改所組建檔案模板為 * 視窗 > 喜好設定 > Java > 代碼產生 > 代碼和注釋 */package com.cn.wangk.tools;import
Time of Update: 2017-01-19
本文執行個體講述了JAVA實現數字大寫金額轉換的方法。分享給大家供大家參考。具體如下:例子:實現將阿拉伯數位金額轉換成中文大寫金額的形式,例如:¥1011 → 壹仟零壹拾壹元整。大寫數字為:零、壹、貳、三、肆、伍、陸、柒、捌、玖、拾、佰、仟、萬、億import java.io.*;import java.lang.String;public class change{ public static void main(String agrs[]) { //Money用於存放輸入的金額數
Time of Update: 2017-01-19
本文執行個體講述了java實現新浪微博Oauth介面發送圖片和文字的方法。分享給大家供大家參考。具體如下:基於網上很多人利用新浪api開發新浪微部落格戶端的時候遇到無法發圖片的問題,很多人卡在了這一布。現將代碼呈上,希望能幫到一些朋友。/*** 發錶帶圖片的微博* @param token* @param tokenSecret* @param aFile* @param status* @param urlPath* @return*/public String
Time of Update: 2017-01-19
本文執行個體講述了java操作excel的方法。分享給大家供大家參考。具體如下:WritableWorkbook workbook = Workbook.createWorkbook(new File("d:\\output.xls")); WritableSheet sheet = workbook.createSheet("項目簡報", 0); //樣式 WritableFont sonti18font = new
Time of Update: 2017-01-19
本文執行個體講述了java實現基於SGIP協議開發聯通簡訊的方法。分享給大家供大家參考。具體如下:近段時間,由於公司的業務需要,開發出了聯通簡訊.此文章的編寫也是根據網上的一些樣本來完成的.閑話少說,下面來看代碼:(運行此程式的時候需要匯入華為的開發包,此包可以到網上下載)下行:public class Mt { private static String SPNumber = "**********"; //接駁號碼碼 private static String ChargeNumber =
Time of Update: 2017-01-19
本文執行個體講述了java調用中國天氣網api獲得天氣預報資訊的方法。分享給大家供大家參考。具體實現方法如下://以冰城哈爾濱為例通過中國天氣api調用天氣資訊private String getWeatherInfo2(){ StringBuilder info = new StringBuilder(); try { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httget = new
Time of Update: 2017-01-19
本文執行個體講述了java實現日期拆分的方法。分享給大家供大家參考。具體如下:如:計算6-1至6-5之間的日期天數及具體日期,預期的結果是得到:6-16-26-36-46-5以下是我利用java 日曆類做的實現:Calendar canlandar1 = Calendar.getInstance();//開始時間Calendar canlandar2 =
Time of Update: 2017-01-19
本文執行個體講述了java檢查數組是否有重複元素的方法。分享給大家供大家參考。具體實現方法如下://判斷數組中是否有重複值public static boolean checkRepeat(String[] array){ Set<String> set = new HashSet<String>(); for(String str : array){ set.add(str); } if(set.size() != array.length){
Time of Update: 2017-01-19
Java提供一種機制叫做序列化,通過有序的格式或者位元組序列持久化java對象,其中包含對象的資料,還有對象的類型,和儲存在對象中的資料類型。所以,如果我們已經序列化了一個對象,那麼它可以被讀取並通過對象的類型和其他資訊進行還原序列化,並最終擷取對象的原型。ObjectInputStream 和 ObjectOutputStream對象是進階別的流對象,包含序列化和還原序列化的方法。ObjectOutputStream
Time of Update: 2017-01-19
Java 8 開始出現,帶來一個全新特性:使用 Lambda 運算式 (JSR-335) 進行函數式編程。今天我們要討論的是 Lambda 的其中一部分:虛擬擴充方法,也叫做公用辯護(defender)方法。該特性可以讓你在介面定義中提供方法的預設實現。例如你可以為已有的介面(如 List 和 Map)聲明一個方法定義,這樣其他開發人員就無需重新實現這些方法,有點像抽象類別,但實際卻是介面。當然,Java 8 理論上還是相容已有的庫。虛擬擴充方法為 Java
Time of Update: 2017-01-19
在2013年將發布的 JavaSE8 中將包含一個叫做 Lambda Project 的計劃,在今年6月份的 JSR-335 草案中有描述。 JSR-335 將閉包引入了 Java 。閉包在現在的很多流行的語言中都存在,例如 C++、C# 。閉包允許我們建立函數指標,並把它們作為參數傳遞。在這篇文章中,我們將粗略的看一遍Java8的特性,並介紹Lambda運算式。而且我將試著放一些範例程式來解釋一些概念和文法。Java
Time of Update: 2017-01-19
如果任何人讓我描述一下HashMap的工作機制的話,我就簡單的回答:“基於Hash的規則”。這句話非常簡單,但是要理解這句話之前,首先我們得瞭解什麼是雜湊,不是嗎?什麼是雜湊
Time of Update: 2017-01-19
眾所周知,隨機數是任何一種程式設計語言最基本的特徵之一。而產生隨機數的基本方式也是相同的:產生一個0到1之間的隨機數。看似簡單,但有時我們也會忽略了一些有趣的功能。我們從書本上學到什嗎?最明顯的,也是直觀的方式,在Java中產生隨機數只要簡單的調用:java.lang.Math.random()在所有其他語言中,產生隨機數就像是使用Math工具類,如abs, pow, floor,
Time of Update: 2017-01-19
DateFormat 類是一個非安全執行緒的類。javadocs 文檔裡面提到"Date formats是不能同步的。 我們建議為每個線程建立獨立的日期格式。 如果多個線程同時訪問一個日期格式,這需要在外部加上同步代碼塊。"以下的代碼為我們展示了如何在一個線程環境裡面使用DateFormat把字串日期轉換為日期對象。建立一個執行個體來擷取日期格式會比較高效,因為系統不需要多次擷取本地語言和國家。 public class DateFormatTest { private
Time of Update: 2017-01-19
本文執行個體講述了Java互斥鎖。分享給大家供大家參考。具體分析如下:互斥鎖,常常用於多個線程訪問獨佔式資源,比如多個線程同時寫一個檔案,雖然互斥訪問方式不夠高效,但是對於一些應用情境卻很有意義//沒有互斥鎖的情況(可以自己跑跑看運行結果):public class LockDemo { // private static Object lock = new Object();// static確保只有一把鎖 private int i = 0; public void increaseI(
Time of Update: 2017-01-19
使用多個對象或者大資料結構時,一種提升其效能的方式是運用消極式載入或賦值(來實現)。將費時的操作儘可能的縮短的想法,從未實現。我通過一些例子來說明消極式載入技術在Java中如何運用,給予一些指引以在其他語言中能更易(使用)並作為核心語言的一部分。一種使用情境是通過JTable來展示數百個包含中繼資料和測量值得域對象。初始化我們的域對象在記憶體中能儲存兩種類型的對象,即便在表格中僅顯示部分中繼資料。構建該表格將花費數秒鐘的時間,(但)我們可以接受再次展示數百項(資料)。在做了一些分析過後,我們改進
Time of Update: 2017-01-19
在一個單線程應用中,當你調用一個方法只有計算結束才會返回結果( IOUtils.toString() comes from Apache Commons IO ): public String downloadContents(URL url) throws IOException { try(InputStream input = url.openStream()) { return IOUtils.toString(input,
Time of Update: 2017-01-19
這將會是一篇比較邪惡的文章,當你想在某個人的生活中製造悲劇時你可能會去google搜尋它。在Java的世界裡,記憶體溢出僅僅只是你在這種情況下可能會引入的一種bug。你的受害者會在辦公室裡度過幾天甚至是幾周的不眠之夜。在這篇文章中我將會介紹兩種溢出方式,它們都是比較容易理解和重現的。並且它們都是來源現實項目的案例研究,但是為了讓你清晰地掌握,我把它們簡化了。不過放心,在我們遇到和解決了很過溢出bug之後,類似的案例將會比你想象得更加普遍。先來一個進入狀態的,在使用HashSet/Ha