JDK中已經幫我們實現了十進位 轉 二進位、八進位、十六進位的功能,使用Integer.toBinaryString(x)、Integer.toOctalString(x)、Integer.toHexString(x) 即可將x轉換為對應的二進位、八進位、十六進位形式。我們也可以通過位移運算來實現求二進位、八進位、十六進位的功能。 範例程式碼 @Testpublic void test02(){//使用JDK實現int x =
一、Java volatile關鍵字 Volatile修飾的成員變數在每次被線程訪問時,都強迫從主記憶體中重讀該成員變數的值。而且,當成員變數發生變化時,強迫線程將變化值回寫到主記憶體。這樣在任何時刻,兩個不同的線程總是看到某個成員變數的同一個值。 Java語言規範中指出:為了獲得最佳速度,允許線程儲存共用成員變數的私人拷貝,而且只當線程進入或者離開同步代碼塊時才與共用成員變數的原始值對比。
最近在公司做爬蟲這方面的工作,接觸正則比較多一點,有一個業務需求需要過濾掉字串中的所有特殊字元,研究了一下,終於給實現。 package com.xx.filter;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;public class StringFilterTest {// 過濾特殊字元public String StringFilter(String str)
最近公司項目需要將一個大檔案分割成若干個小檔案進行處理,處理完畢之後將所有的小檔案合并為一個檔案。 範例程式碼 package com.xx.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;import java.util.
JAVA的list,set,數組之間的轉換,主要是使用Apache Jakarta Commons Collections,具體的方法如下: import org.apache.commons.collections.CollectionUtils; String[] strArray = {"aaa", "bbb", "ccc"};
一、概念Annontation是JDK5.0 開始引入的新特徵。中文名稱一般叫註解。它提供了一種安全的類似注釋的機制,用來將任何的資訊或中繼資料(metadata)與程式元素(類、方法、成員變數等)進行關聯。更通俗的意思是為程式的元素(類、方法、成員變數)加上更直觀更明了的說明,這些說明資訊是與程式的商務邏輯無關,並且是供指定的工具或架構使用的。Annontation像一種修飾符一樣,應用於包、類型、構造方法、方法、成員變數、參數及本地變數的聲明語句中。 二、原理
【HashSet】 1. HashSet儲存不能夠儲存相同的元素,元素是否相同的判斷:重寫元素的equals方法。equals方法和hashCode方法必須相容,如:equals方法判斷的是使用者的名字name,那麼hashCode的返回的hashcode必須是name。hashcode(); &
問題的引出:做一個功能的時候 需要將已得到的map的索引值放入一個List中做他用,我就很stupid的 逐個遍曆、add到list中,真的很低級,簡單回顧下其他簡便方法吧。 問題的解決: //構造Map資料 Map<String, String> map = new HashMap<String, String>(); map.put("ele1", "小櫻");
在JDK 1.5 中新增加了java.util.Queue介面,用以支援隊列的常見操作。 public interface Queue<E>extends Collection<E> 隊列除了基本的 Collection 操作外,隊列還提供其他的插入、提取和檢查操作。每個方法都存在兩種形式:一種拋出異常(操作失敗時),另一種返回一個特殊值(null 或false,具體取決於操作)。插入操作的後一種形式是用於專門為有容量限制的Queue 實現設計的;在大多數實現中,
第一步.建立一個模板檔案以.ftl結尾。 IDAO.ftl package com.media.dao; import java.util.List; import com.media.bean.${model_name}; import com.media.exceptions.DAOException; /** * ${model_name_cn}介面 * * @author ${author} * @link ${link} * * @version
寫Java代碼有5年時間了,常用的開發架構是 struts2 + spring + mybatis 後端資料庫是 mysql ,根據平時的積累寫了個半自動代碼產生工具,使用工具後開發效率大幅度提高。今天在這分享一下歡迎大家來吐槽。項目地址 http://www.autojcode.com/ 使用說明: 進入AutoJCode 自動代碼產生介面,錄入Java類包路徑、類名,點擊添加屬性按鈕,為類添加屬性,點擊產生代碼 按鈕,產生代碼。如圖:
最近項目中需要從網站上抓取大量的資料,採用了多線程技術,每個線程抓取的資料都需要儲存到一個檔案中,避免消耗大量的記憶體。 思路:多個訪問線程將需要寫入到檔案中的資料先儲存到一個隊列裡面,然後由專門的 寫出線程負責從隊列中取出資料並寫入到檔案中。 WriterQueue.java 存放要輸出的資料隊列 package com.yulore.write;import java.util.LinkedList;import java.util.concurrent.locks.
最近項目中需要把位元組數群組轉換為十六進位數的形式,研究了好久終於實現了,分享一下 位元組數組與十六進位字串之間的相互轉換 /** * Convert byte[] to hex * string.這裡我們可以將byte轉換成int,然後利用Integer.toHexString(int)來轉換成16進位字串。 * @param src * @return */public String bytesToHexString(byte[] src) {StringBuilder
首先我們要搞清楚現在已經開放了多少個號碼段,國家號碼段分配如下: 移動:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 聯通:130、131、132、152、155、156、185、186 電信:133、153、180、189、(1349衛通) 剩下的就是寫Regex進行匹配了,如下: package com.example.offline;import java.util.regex.Matcher;import
Java編寫的代碼很容易被反編譯,但是可以使用proguard來盡最大努力來保護我們的代碼,proguard具體使用可以參考官方文檔(http://proguard.sourceforge.net/),現在就把我的配置寫下來(實際使用中),以供參考 1.到http://proguard.sourceforge.net/下載proguard 2.準備好要的jar包,我在這裡舉例是 Yulore_yellowSDK.jar 3.解壓proguard,雙擊
在上一篇文章中介紹了註解的原理和適用情境,這一篇開始如何自訂Annotation。 Annotation是不同於Class、Interface、Enum,使用@interface自訂註解時,自動繼承了java.lang.annotation.Annotation介面,由編譯器自動完成其他細節。在定義註解時,不能繼承其他的註解或介面。 1、自訂MyAnnotation package com.example.annotation;import
很多時候我們需要對某些數字進行格式化後顯示,這裡總結了四種比較常見的方法: package com.example.test.df;import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class DecimalFormatTest {private static float number = -128.735f;public static
定義:使多個對象都有機會處理請求,從而避免了請求的寄件者和接收者之間的耦合關係。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止。 類型:對象行為型模式 類圖: 首先來看一段代碼: [java] view plain copy
之前已經完成了單個檔案夾的拷貝功能,在此基礎上很容易實現多個檔案夾的合并了,套一個for迴圈就可以啦。 package com.xx.test.copy;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import
今天在學習的Maven的時候需要執行Maven構建出來的jar檔案是否正確,故需要執行該jar檔案看看運行結果是否正確。 Maven工程的目錄結果如下: Eclipse的工作目錄在E:\workspace\EX11下,如下圖所示: Maven構建的jar檔案在target目錄下,名稱為helloworld-0.0.1-SNAPSHOT,在Dos下直接執行如下命令: E:\workspace\EX1