2011年2月24日 星期四
java錯誤:java.util.Calendar輸出月份不對的問題
我們希望得到的結果是當前日曆的月份。
但是我得到的月份數值跟正常月份不符,調試結論:
java.util.Calendar輸出的年份和日期都是和現實一樣的。
唯獨月份的計數是從0開始的,比如當前的8月,會輸出數值7。
所以在計算時,需要+1處理。
(tC.get(Calendar.MONTH)+1),輸出即為正常月份
在做tC.set(Calendar.MONTH,2)時,月份的計數也是從零開始的,即當前月為3月,即寫入2。
2011年1月27日 星期四
port 用途說明 (轉載)
按埠號可分為3大類:
(1)公認埠(Well Known Ports):從0到1023,它們緊密綁定(binding)於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。
(2)註冊埠(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其他目的。例如:許多系統處理動態埠從1024左右開始。
(3)動態和/或私有埠(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。
0 通常用於分析作業系統。這一方法能夠工作是因為在一些系統中“0”是無效埠,當你試圖使用一種通常的閉合埠連接它時將產生不同的結果。一種典型的掃描:使用IP位址為0.0.0.0,設置ACK位元並在乙太網層廣播。
1 tcpmux TCP Port Service Multiplexer 傳輸控制協定埠服務多路開關選擇器
2 compressnet Management Utility compressnet 管理實用程式
3 compressnet Compression Process 壓縮進程
5 rje Remote Job Entry 遠端作業登錄
7 echo Echo 回顯
9 discard Discard 丟棄
11 systat Active Users 線上用戶
13 daytime Daytime 時間
17 qotd Quote of the Day 每日引用
18 msp Message Send Protocol 消息發送協定
19 chargen Character Generator 字元發生器
20 ftp-data File Transfer[Default Data] 檔傳輸協定(默認資料口)
21 ftp File Transfer[Control] 檔傳輸協議(控制)
22 ssh SSH Remote Login Protocol SSH遠端登錄協定
23 telnet Telnet 終端仿真協定
2010年12月29日 星期三
用 Java 做簡單的 Thread pool
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public class TestExecutor {
public static class Command implements Runnable {
private int id;
public Command(int id) {
this.id = id;
}
public void run() {
System.out.println(id + " Begin " + Thread.currentThread().getName());
try {
Thread.sleep(3000);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println(id + " End " + Thread.currentThread().getName());
}
}
public static void main(String[] args) {
Executor tp = Executors.newFixedThreadPool(3);
tp.execute(new Command(1));
tp.execute(new Command(2));
tp.execute(new Command(3));
tp.execute(new Command(4));
tp.execute(new Command(5));
}
}
2010年11月17日 星期三
Mysql中count(*),DISTINCT的使用方法和效率研究
突然發現mysql對於count(*)的不同處理會造成不同的結果
比如執行
SELECT count(*) FROM tablename
即使對於千萬級別的數據mysql也能非常迅速的返回結果
而對於
SELECT count(*) FROM tablename WHERE…..
mysql的查詢時間開始攀升
仔細查閱累下手冊,發現當沒有WHERE語句對於整個mysql的表進行count運算的時候
MyISAM類型的表中保存有總的行數,而當添加有WHERE限定語句的時候Mysql需要對整個表進行檢索
從而得出count的數值
突然又想起來看到的不少新興的php程序對於count的處理並沒有很好的意識到這點
記錄下
順便提下mysql的DISTINCT的關鍵字有很多你想不到的用處
2010年9月16日 星期四
Regular Expression (RegExp) in JavaScript
Regular Expression (以下簡稱 REGEX) 是以一組特定字元符號描述字串樣式規則的記述語法。簡單地說, REGEX 用於表達字元符號在字串中出現的規則。舉個例子說明,在 REGEX 中,字元 '^' 放在第一個位置表示字串開頭位置,當我寫下 ^A 的記述時,便表示必須是一個開頭為 A 的字串,如 Adam,才符合此一規則。這個表達規則通常稱為 pattern 。 ECMAScript/JavaScript 以內建的 RegExp Object 提供 REGEX 功能。See also: ECMA-262 15.10 - RegExp Objects
要產生一個 RegExp 個體有兩種方式。第一種是直接以斜線 (/) 包住 pattern ,例如 /^A/ 。注意不要再用單引號或雙引號包在斜線外圍,一但用了引號圍住,就只是一個 String 而非 RegExp 個體。 "/^A/" 就是錯誤寫法,這只是一個普通字串。第二種是向系統要求建立一個 RegExp 個體,即 new RegExp(pattern) ,引數 pattern 可以是一個字串也可以是另一個 RegExp 個體。第一種方法只能使用常值的 pattern ,我們不能用斜線包住一個變數或一個字串運算結果。如果 pattern 保存在變數之中,則必須使用第二種方式。
RegExp 個體提供兩個主要行為,即 exec() 和 test() 。 exec() 會對引數字串進行比對運算,並將匹配的字串內容記錄在陣列中回傳。而 test() 則僅僅測試引數字串是否符合規則,只回傳 true 或 false 。此外,RegExp 個體也可以作為 String 個體的 match(), search(), replace(), split() 之引數。 String 的 match() 其實就是調用 RegExp 的 exec() ,兩者的結果相同。
2010年9月9日 星期四
JAVA日期問題總結.轉
【轉錄自某簡體網頁】
● JAVA日期問題總結
1、獲取服務器端當前日期:
<%@ page import="java.util.Date"%>
<%
Date myDate = new Date();
%>
2、獲取當前年、月、日:
<%@ page import="java.util.Date"%>
<%
Date myDate = new Date();
int thisYear = myDate.getYear() + 1900;//thisYear = 2003
int thisMonth = myDate.getMonth() + 1;//thisMonth = 5
int thisDate = myDate.getDate();//thisDate = 30
%>
3、按本地時區輸出當前日期
<%@ page import="java.util.Date"%>
<%
Date myDate = new Date();
out.println(myDate.toLocaleString());
%>
輸出結果為:
2003-5-30
Convert string to Date in JSP
<%@ page import= "java.util.Date,java.text.SimpleDateFormat, java.text.ParseException" %> <% String dateStr = request.getParameter("date"); SimpleDateFormat formater = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss"); Date result = formater.parse(dateStr); out.println(result); %> |