Time of Update: 2017-01-13
常量常量是一種標識符,它的值在運行期間恒定不變。並且常量在程式中只能被引用,而不能被重新賦值。常量的命名規則:1.在JAVA中,在變數聲明中加入final關鍵字代表常量,加入static關鍵字代表類變數。一般情況下,我們把static與final結合 起來聲明一個常量.2.盡量使用含義直觀的常量來表示那些將在程式中多次出現的數字或字串。public static final double PI = 3.1415926;在Java介面中聲明一個變數,編譯時間會自動加上public static
Time of Update: 2017-01-13
最近發現團隊成員在Java代碼方面的品質不夠高,準備寫一些基礎的文章,供大家參考。一、定義String是不可變字元序列。StringBuffer是可變的字元序列。StringBuilder也是可變的字元序列。1、StringBuffer和StringBuilder的唯一區別StringBuffer對象是安全執行緒的,這意味著StringBuffer對象可以同時被多個並行線程修改,因為它所有的方法都被聲明為"synchronized(同步)"。StringBuilder類是JD
Time of Update: 2017-01-13
在c中常要控制對應的訊號資訊,在java中也可以實現簡單的訊號捕獲;可以作為程式的關閉時候清理資料做參考,程式如下:package com.i5a6.signal;import sun.misc.Signal;import sun.misc.SignalHandler;public class TestSignal implements SignalHandler{ public static void main(String[] args) throws
Time of Update: 2017-01-13
簡單原廠模式(執行個體)專門定義一個類來負責建立其他類的執行個體,被建立的執行個體通常都具有共同的父類,簡單工廠(Simple Factory)模式又稱為靜態Factory 方法(Static Factory
Time of Update: 2017-01-13
package com.yq1012.建立型模式.Factory 方法.抽象工廠;public class AMD implements CPU{ public String getCPU(){ return "Athlon XP 2008+"; }} package
Time of Update: 2017-01-13
題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。1.程式分析:利用while語句,條件為輸入的字元不為 ‘\n ‘.import java.util.Scanner;public class ex7 { public static void main(String args[]) { System.out.println("請輸入字串:");
Time of Update: 2017-01-13
故先要整清楚現在已經開放了多少個號碼段,國家號碼段分配如下:移動: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衛通)那麼現在就可以正則匹配測試了,import java.io.IOException;import java.util.regex.Matcher;import
Time of Update: 2017-01-13
遊戲中要去校正使用者名稱是否重複,redis中放中文的key貌似蠻怪的吧,還是hash後放數字吧,從而校正是否衝突;hash衝突 例如“Af”和“BG”雜湊值相同,則有“AfAf”,“AfBG”,“BGAf”,“BGBG”的雜湊值也相同具體關於java的Hash衝突攻擊
Time of Update: 2017-01-13
當我們在使用Hibernate作為資料庫操作的類庫時,我們一般在DAO層裡與資料庫相關的操作,把商務邏輯寫在service層裡。但是如果我們的項目比較小,那麼直接在dao層裡寫事務也是可以的,這個就是看個人了,沒有什麼特別的規定。但是如果項目比較大,那麼DAO應該只做單純的資料庫的操作,service寫事務的操作,即整個商務邏輯。例如:商務邏輯要求向資料庫中的使用者表增加一個使用者,同時向日誌表中加入一條日誌,而這需要調用DAO的兩個方法(UserDao的saveUser和LogDao的save
Time of Update: 2017-01-13
+-----------+--> | counter 1 | +-----------+--> | counter 2 | +-----------+ -> sum(subCounter)--> |
Time of Update: 2017-01-13
例子1,string 轉BigDecimalpublic class Test{ public static void main(String[] arg) { String str1="2.30"; BigDecimal bd=new BigDecimal(str1);
Time of Update: 2017-01-13
方法 一,把數組for 下一個轉String[] yq1012= {"123", "234", "345"}; Long[] num = new Long[yq1012.length]; for (int idx = 0; idx < yq1012.length;
Time of Update: 2017-01-13
一、線程和進程的概念現在的作業系統是多任務作業系統。多線程是實現多任務的一種方式。進程是程式的一個動態執行過程,是指一個記憶體中啟動並執行應用程式,每個進程都有自己獨立的一塊記憶體空間,一個進程中可以啟動多個線程。比如在
Time of Update: 2017-01-13
這個異常一般在我們遍曆刪除集合元素時出現。寫了下面這個代碼來展示這個異常。[java]import java.util.ArrayList;import java.util.List;public class ExeptionTest {public static void main(String[] args) {List list = new ArrayList();list.add("a");list.add("b");list.add("
Time of Update: 2017-01-13
近日在項目中遇到了一個詭異的問題,參考代碼如下:[java]public class ListTest {public static List listFactory() {return new ArrayList(Arrays.asList("a", "b", "c", "d"));}public static void main(String[] args) {List testList =
Time of Update: 2017-01-13
java 7使得我們能夠在同一個catch語句塊中捕獲多種不同的異常,這也叫做多重異常捕獲。在java7以前,我們可能要這樣做:try { // execute code that may throw 1 of the 3 exceptions below.} catch(SQLException e) { logger.log(e);} catch(IOException e) {
Time of Update: 2017-01-13
在並發上下文中,非阻塞演算法是一種允許線程在阻塞其他線程的情況下訪問共用狀態的演算法。在絕大多數項目中,在演算法中如果一個線程的掛起沒有導致其它的線程掛起,我們就說這個演算法是非阻塞的。為了更好的理解阻塞演算法和非阻塞演算法之間的區別,我會先講解阻塞演算法然後再講解非阻塞演算法。阻塞並發演算法一個阻塞並發演算法一般分下面兩步:執行線程請求的操作阻塞線程直到可以安全地執行操作很多演算法和並發資料結構都是阻塞的。例如,java.util.concurrent.BlockingQueue的不同實現都是
Time of Update: 2017-01-13
最近在學習Netty架構,對著教程上寫了個簡單的netty應用,可是死活調試不成功,對著程式跟教程上看了幾遍也找不到原因,後來又重新寫了一遍,服務端程式終於調試成功,原因出在了那個@Skip注釋上了,代碼如下:package com.chris.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.
Time of Update: 2017-01-13
JDK 5 的並發包中提供了很多類,這些類提供了比原有的並發機制更好的效能和伸縮性。要想理解這些類的工作機理,那就不得不提到 CAS。CAS 全稱是 Compare and Swap,是指現代主流 CPU 都支援的一種指令,這個指令能為多線程編程帶來更好的效能(稍後會詳細介紹)。另外一個可能會被當做 CAS 的是 Compare and Set,是指 JDK 5 並發包中廣泛使用的一種基於 Compare and Swap 的並發演算法。嚴格說 CAS 僅指代前者。Compare and
Time of Update: 2017-01-13
在用Semaphore 訊號量的時候,感覺對公平調度比較有用,可以控制多線程爭奪資源時候,最大可以幾個在執行,隨手寫了代碼測試下,如下:說明:1. acquire() 擷取一個許可,如果沒有就等待2. release() 釋放一個許可3. Semaphore可以控制某個資源可被同時訪問的個數,自行初始化的數量,為1當然就順序執行了package com.i5a6.semp.test; import java.util.Random;import