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
當我們在使用瀏覽器與伺服器進行會話的過程中,就必然會產生一些資料。這個時候就需要對資料進行儲存。比如常見的購物網站購物車資訊的儲存。儲存用戶端與伺服器會話資料的兩種技術是Cookie與Session。一.Cookie
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
這一小節概述了try-catch-finally
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
Time of Update: 2017-01-13
1. 右鍵“電腦”->“屬性”->“進階系統設定”,在彈出的選項中點擊下方的“環境變數”,進入設定環境變數的選項卡。然後點擊建立,如圖4步所示,會彈出一個建立系統變數的設定框,變數名填JAVA_HOME變數值填寫你jdk的安裝目錄(我的是 D:\jdk7),填好之後,點擊確定按鈕即可,如下圖。 2.
Time of Update: 2017-01-13
初學 Java 的人很不經意間就會把常量定義在介面中,大概唯一的理由是介面不能執行個體化,而使用介面中定義的常量也是不用附著在執行個體上的。這主要還是 JDK 本身給我們做了很多這樣的榜樣, 如 java.io.ObjectStreamConstans,多是出現在 Enum 類型到來之前。其實 Java 的介面常量是一種反模式,理由如下:1. 介面是不能阻止被實現或繼承的,也就是說子介面或實現中是能夠覆蓋掉常量的定義(重名),這樣通過父,子介面(或實現) 去引用常量是可能不一致的2.
Time of Update: 2017-01-13
問題:子線程迴圈 10 次,接著主線程迴圈 100 次,接著又回到子線程迴圈 10 次,接著再回到主線程又迴圈 100 次,如此迴圈50次。分析:這個實際上是很簡單的問題,即子線程run,主線程阻塞--->子線程阻塞,主線程run,能夠使線程阻塞的方法有很多,最常見的是sleep與wait;當然,需要控制的話,用wait/notify。子線程與主線程共同操作一個Resource