當前位置:法律諮詢服務網 - 企業資訊 - JAVA題目

JAVA題目

J2EE Java2平臺企業版

string是引用數據類型

如何取得年月日,小時分秒

public static void main(String[] args)

{

ActionListener time = new ActionListener() { // 監聽事件,不然實現不了動態改變時間

public void actionPerformed(ActionEvent e) {

//date對象代表當前的系統時間(毫秒)

Date date = new Date();

//format對象是用來以指定的時間格式格式化時間的

SimpleDateFormat from = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss"); //這裏的格式可以自己設置

//format()方法是用來格式化時間的方法

String times = from.format(date);

System.out.println(times); }

};

Timer tim = new Timer(1000, time); //這裏表示1000毫秒更新壹下時間

tim.start(); //啟動

}

我這個答案肯定正確啊

下面幫妳解釋妳的答案吧

Date //是在java.util.Date;裏面

SimpleDateForma //這個是java.text.SimpleDateFormat;用來輸出問本格式的

DateFormat //應該是在java.util.*;裏面吧..應該是的

妳那個錯誤是編譯就沒通過啊

public class Test

那妳那個編譯寫的因該是

javac Test.java 編譯的應該是類啊而不是javac time.java 請問妳的time什麽意思呢,所以妳報的異常是找不到time類啊

呵呵...妳是初學java吧該答的我都答完了拉!還特地幫妳每句都寫

如何讀寫文件

StringBuffer sb = new StringBuffer();

//File file = new FileWindow().load();

File file;

file = new File("F:/jtest/from.txt");

TextReader tr = new TextReader(file);

sb.append(tr.readAll());

Out.println(sb.toString());

String [] tags = {"\"", " ", "'"};

String str;

str = sb.toString();

for(String reg: tags) {

Out.println(reg);

str = str.replaceAll(reg, "");

}

Out.println(str);

抽象類和接口的區別

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建壹個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建壹個變量,其類型是壹個抽象類,並讓它指向具體子類的壹個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有壹個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。

主鍵是確定數據庫中的表的記錄的唯壹標識字段,可以是表中的壹個字段,也可以是表中的多個字段組成的。壹旦確定為主鍵,則該字段不可為空也不可以重復。比如學生表中的學號就可以定義成該表的字段

外鍵的定義是相對於主鍵而言的,比如另有壹張成績表,表中也出現了學生表中的對應學號字段,則相對於學生表,學號就是成績表的外鍵

String和StringBuffer的區別

STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果妳對字符串中的內容經常進行操作,特別是內容要修改時,那麽使用StringBuffer,如果最後需要String,那麽使用StringBuffer的toString()方法

try{}catch(){}finally{}結構,try{}內出現異常,try{}內剩下尚未執行的代碼還執行嗎,finally{}內的代碼呢?finally{}後面的代碼呢

執行 finally{}內的代碼最後執行

排序算法

所謂排序,就是使壹串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。

分類

在計算機科學所使用的排序算法通常被分類為:

計算的復雜度(最差、平均、和最好表現),依據串列(list)的大小(n)。壹般而言,好的表現是O。(n log n),且壞的行為是Ω(n2)。對於壹個排序理想的表現是O(n)。僅使用壹個抽象關鍵比較運算的排序算法總平均上總是至少需要Ω(n log n)。

記憶體使用量(以及其他電腦資源的使用)

穩定度:穩定排序算法會依照相等的關鍵(換言之就是值)維持紀錄的相對次序。也就是壹個排序算法是穩定的,就是當有兩個有相等關鍵的紀錄R和S,且在原本的串列中R出現在S之前,在排序過的串列中R也將會是在S之前。

壹般的方法:插入、交換、選擇、合並等等。交換排序包含冒泡排序(bubble sort)和快速排序(quicksort)。選擇排序包含shaker排序和堆排序(heapsort)。

當相等的元素是無法分辨的,比如像是整數,穩定度並不是壹個問題。然而,假設以下的數對將要以他們的第壹個數字來排序。

(4, 1) (3, 1) (3, 7) (5, 6)

在這個狀況下,有可能產生兩種不同的結果,壹個是依照相等的鍵值維持相對的次序,而另外壹個則沒有:

(3, 1) (3, 7) (4, 1) (5, 6) (維持次序)

(3, 7) (3, 1) (4, 1) (5, 6) (次序被改變)

不穩定排序算法可能會在相等的鍵值中改變紀錄的相對次序,但是穩定排序算法從來不會如此。不穩定排序算法可以被特別地時作為穩定。作這件事情的壹個方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個物件間之比較,就會被決定使用在原先資料次序中的條目,當作壹個同分決賽。然而,要記住這種次序通常牽涉到額外的空間負擔。

排列算法列表

在這個表格中,n是要被排序的紀錄數量以及k是不同鍵值的數量。

穩定的

冒泡排序(bubble sort) — O(n2)

雞尾酒排序 (Cocktail sort, 雙向的冒泡排序) — O(n2)

插入排序 (insertion sort)— O(n2)

桶排序 (bucket sort)— O(n); 需要 O(k) 額外 記憶體

計數排序 (counting sort) — O(n+k); 需要 O(n+k) 額外 記憶體

歸並排序 (merge sort)— O(n log n); 需要 O(n) 額外記憶體

原地歸並排序 — O(n2)

二叉樹排序 (Binary tree sort) — O(n log n); 需要 O(n) 額外記憶體

鴿巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 額外記憶體

基數排序 (radix sort)— O(n·k); 需要 O(n) 額外記憶體

Gnome sort — O(n2)

Library sort — O(n log n) with high probability, 需要 (1+ε)n 額外記憶體

不穩定

選擇排序 (selection sort)— O(n2)

希爾排序 (shell sort)— O(n log n) 如果使用最佳的現在版本

Comb sort — O(n log n)

堆排序 (heapsort)— O(n log n)

Smoothsort — O(n log n)

快速排序 (quicksort)— O(n log n) 期望時間, O(n2) 最壞情況; 對於大的、亂數串列壹般相信是最快的已知排序

Introsort — O(n log n)

Patience sorting — O(n log n + k) 最外情況時間, 需要 額外的 O(n + k) 空間, 也需要找到最長的遞增子序列(longest increasing subsequence)

不實用的排序算法

Bogo排序 — O(n × n!) 期望時間, 無窮的最壞情況。

Stupid sort — O(n3); 遞回版本需要 O(n2) 額外記憶體

Bead sort — O(n) or O(√n), 但需要特別的硬體

Pancake sorting — O(n), 但需要特別的硬體

排序的算法

排序的算法有很多,對空間的要求及其時間效率也不盡相同。下面列出了壹些常見的排序算法。這裏面插入排序和冒泡排序又被稱作簡單排序,他們對空間的要求不高,但是時間效率卻不穩定;而後面三種排序相對於簡單排序對空間的要求稍高壹點,但時間效率卻能穩定在很高的水平。基數排序是針對關鍵字在壹個較小範圍內的排序算法。

插入排序

冒泡排序

選擇排序

快速排序

堆排序

歸並排序

基數排序

希爾排序

插入排序

插入排序是這樣實現的:

首先新建壹個空列表,用於保存已排序的有序數列(我們稱之為"有序列表")。

從原數列中取出壹個數,將其插入"有序列表"中,使其仍舊保持有序狀態。

重復2號步驟,直至原數列為空。

插入排序的平均時間復雜度為平方級的,效率不高,但是容易實現。它借助了"逐步擴大成果"的思想,使有序列表的長度逐漸增加,直至其長度等於原列表的長度。

冒泡排序

冒泡排序是這樣實現的:

首先將所有待排序的數字放入工作列表中。

從列表的第壹個數字到倒數第二個數字,逐個檢查:若某壹位上的數字大於他的下壹位,則將它與它的下壹位交換。

重復2號步驟,直至再也不能交換。

冒泡排序的平均時間復雜度與插入排序相同,也是平方級的,但也是非常容易實現的算法。

選擇排序

選擇排序是這樣實現的:

設數組內存放了n個待排數字,數組下標從1開始,到n結束。

i=1

從數組的第i個元素開始到第n個元素,尋找最小的元素。

將上壹步找到的最小元素和第i位元素交換。

如果i=n-1算法結束,否則回到第3步

選擇排序的平均時間復雜度也是O(n?)的。

快速排序

現在開始,我們要接觸高效排序算法了。實踐證明,快速排序是所有排序算法中最高效的壹種。它采用了分治的思想:先保證列表的前半部分都小於後半部分,然後分別對前半部分和後半部分排序,這樣整個列表就有序了。這是壹種先進的思想,也是它高效的原因。因為在排序算法中,算法的高效與否與列表中數字間的比較次數有直接的關系,而"保證列表的前半部分都小於後半部分"就使得前半部分的任何壹個數從此以後都不再跟後半部分的數進行比較了,大大減少了數字間不必要的比較。但查找數據得另當別論了。

堆排序

堆排序與前面的算法都不同,它是這樣的:

首先新建壹個空列表,作用與插入排序中的"有序列表"相同。

找到數列中最大的數字,將其加在"有序列表"的末尾,並將其從原數列中刪除。

重復2號步驟,直至原數列為空。

堆排序的平均時間復雜度為nlogn,效率高(因為有堆這種數據結構以及它奇妙的特征,使得"找到數列中最大的數字"這樣的操作只需要O(1)的時間復雜度,維護需要logn的時間復雜度),但是實現相對復雜(可以說是這裏7種算法中比較難實現的)。

看起來似乎堆排序與插入排序有些相像,但他們其實是本質不同的算法。至少,他們的時間復雜度差了壹個數量級,壹個是平方級的,壹個是對數級的。

平均時間復雜度

插入排序 O(n2)

冒泡排序 O(n2)

選擇排序 O(n2)

快速排序 O(n log n)

堆排序 O(n log n)

歸並排序 O(n log n)

基數排序 O(n)

希爾排序 O(n1.25)

壹、術語session

在我的經驗裏,session這個詞被濫用的程度大概僅次於transaction,更加有趣的是transaction與session在某些語境下的含義是相同的。

session,中文經常翻譯為會話,其本來的含義是指有始有終的壹系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的壹系列過程可以稱之為壹個session。有時候我們可以看到這樣的話“在壹個瀏覽器會話期間,...”,這裏的會話壹詞用的就是其本義,是指從壹個瀏覽器窗口打開到關閉這個期間①。最混亂的是“用戶(客戶端)在壹次會話期間”這樣壹句話,它可能指用戶的壹系列動作(壹般情況下是同某個具體目的相關的壹系列動作,比如從登錄到選購商品到結賬登出這樣壹個網上購物的過程,有時候也被稱為壹個transaction),然而有時候也可能僅僅是指壹次連接,也有可能是指含義①,其中的差別只能靠上下文來推斷②。

然而當session壹詞與網絡協議相關聯時,它又往往隱含了“面向連接”和/或“保持狀態”這樣兩個含義,“面向連接”指的是在通信雙方在通信之前要先建立壹個通信的渠道,比如打電話,直到對方接了電話通信才能開始,與此相對的是寫信,在妳把信發出去的時候妳並不能確認對方的地址是否正確,通信渠道不壹定能建立,但對發信人來說,通信已經開始了。“保持狀態”則是指通信的壹方能夠把壹系列的消息關聯起來,使得消息之間可以互相依賴,比如壹個服務員能夠認出再次光臨的老顧客並且記得上次這個顧客還欠店裏壹塊錢。這壹類的例子有“壹個TCP session”或者“壹個POP3 session”③。

而到了web服務器蓬勃發展的時代,session在web開發語境下的語義又有了新的擴展,它的含義是指壹類用來在客戶端與服務器之間保持狀態的解決方案④。有時候session也用來指這種解決方案的存儲結構,如“把xxx保存在session裏”⑤。由於各種用於web開發的語言在壹定程度上都提供了對這種解決方案的支持,所以在某種特定語言的語境下,session也被用來指代該語言的解決方案,比如經常把Java裏提供的javax.servlet.,相當於總店招牌,比如寶潔公司,也可以指定壹個域下的具體某臺機器比如www.google.com或者froogle.google.com,可以用飄柔來做比。

路徑就是跟在域名後面的URL路徑,比如/或者/foo等等,可以用某飄柔專櫃做比。

路徑與域合在壹起就構成了cookie的作用範圍。

如果不設置過期時間,則表示這個cookie的生命期為瀏覽器會話期間,只要關閉瀏覽器窗口,cookie就消失了。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。會話cookie壹般不存儲在硬盤上而是保存在內存裏,當然這種行為並不是規範規定的。如果設置了過期時間,瀏覽器就會把cookie保存到硬盤上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間。

存儲在硬盤上的cookie可以在不同的瀏覽器進程間***享,比如兩個IE窗口。而對於保存在內存裏的cookie,不同的瀏覽器有不同的處理方式。對於IE,在壹個打開的窗口上按Ctrl-N(或者從文件菜單)打開的窗口可以與原窗口***享,而使用其他方式新開的IE進程則不能***享已經打開的窗口的內存cookie;對於Mozilla Firefox0.8,所有的進程和標簽頁都可以***享同樣的cookie。壹般來說是用javascript的window.open打開的窗口會與原窗口***享內存cookie。瀏覽器對於會話cookie的這種只認cookie不認人的處理方式經常給采用session機制的web應用程序開發者造成很大的困擾。

下面就是壹個goolge設置cookie的響應頭的例子

HTTP/1.1 302 Found

Location: /intl/zh-CN/

Set-Cookie: PREF=ID=0565f77e132de138:NW=1:TM=1098082649:LM=1098082649:S=KaeaCFPo49RiA_d8; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com

Content-Type: text/html

這是使用HTTPLook這個HTTP Sniffer軟件來俘獲的HTTP通訊紀錄的壹部分

瀏覽器在再次訪問goolge的資源時自動向外發送cookie

使用Firefox可以很容易的觀察現有的cookie的值

使用HTTPLook配合Firefox可以很容易的理解cookie的工作原理。

IE也可以設置在接受cookie前詢問

這是壹個詢問接受cookie的對話框。

四、理解session機制

session機制是壹種服務器端的機制,服務器使用壹種類似於散列表的結構(也可能就是使用散列表)來保存信息。

當程序需要為某個客戶端的請求創建壹個session的時候,服務器首先檢查這個客戶端的請求裏是否已包含了壹個session標識 - 稱為session id,如果已包含壹個session id則說明以前已經為此客戶端創建過session,服務器就按照session id把這個session檢索出來使用(如果檢索不到,可能會新建壹個),如果客戶端請求不包含session id,則為此客戶端創建壹個session並且生成壹個與此session相關聯的session id,session id的值應該是壹個既不會重復,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。

保存這個session id的方式可以采用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發揮給服務器。壹般這個cookie的名字都是類似於SEEESIONID,而。比如weblogic對於web應用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是JSESSIONID。

由於cookie可以被人為的禁止,必須有其他機制以便在cookie被禁止時仍然能夠把session id傳遞回服務器。經常被使用的壹種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面,附加方式也有兩種,壹種是作為URL路徑的附加信息,表現形式為/wls/docs70/webapp/weblogic_xml.html#1036869

~~我要200分~~

  • 上一篇:秦皇島限價房怎麽申請
  • 下一篇:求壹篇無錫吳文化公園遊後感,500字,急!
  • copyright 2024法律諮詢服務網