




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、17.1Java基礎編程試題(1)在上機編程類的面試題中,大部分涉及基礎編程,例如算法、語法、常用 的類等知識點。面試題 1 怎樣截取字符串考題題干編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié) 截取的字符串。但是要保證漢字不被截半個,如 我ABC4,應該截為我AB, 輸入我ABC漢DEF6應該輸出我ABC,而不是我ABC敘的半個。試題分析本面試題容易產生困惑的是中文字符和英文字符,在這里需要考慮漢字和 英文字符的占用字節(jié)數(shù)問題,中文字符占兩個字節(jié),英文字符占一個字節(jié),理 解了這個,就很容易完成本題了。參考答案具體代碼實現(xiàn)如下:package core_java;import
2、 java.util.Scanner;public class InterceptionStr static String ss;/ 要進行截取操作的字符串static int n;/ 截取的字符串的字節(jié)數(shù)public static void main(String args) System.out.println( 請輸入字符串: );Scanner scStr = new Scanner(System.in);/ 從鍵盤獲取字符串ss = scStr.next();/將 Scanner 對象中的內容以字符串的形式取出來 System.out.println( 請輸入字節(jié)數(shù): ); Scan
3、ner scByte = new Scanner(System.in);/ 從鍵盤獲取字符串n = scByte.nextInt();/將Seanner對象中的內容以數(shù)值的形式取出來Interception(setValue();/ 方法與方法間的套用publie statie String setValue() / 此方法的作用是將字符串轉換成字符串數(shù)組String string = new Stringss.length();/ 創(chuàng)建一個字符數(shù)組 stringfor (int i = 0; i string.length; i+) stringi = ss.substring(i, i +
4、 1);/將字符串ss中的第i個字符取出,放入字符數(shù)組中string中return string;/ 將這個字符數(shù)組返回public static void Interception(String string) int count = 0;String m = u4e00-u9fa5;/ 漢字的正則表達試System.out.println( 以每 + n + 字節(jié) 劃分的字符串如下所示: );for (int i = 0; i string.length; i+) if (stringi.matches(m) / 將字符數(shù)組中的每一 個元素與表則表達式進行匹配,如果相同則返回 true c
5、ount = count + 2;/ 如果當前字符是漢字,計數(shù)器 count 就加 2 else count = count + 1;/ 如果當前字符不是漢字,計數(shù)器 count 就加 1if (count n) /如果當前計數(shù)器count的值小于n,則輸出當前字符System.out.print(stringi); else if (count = n) /如果當前計數(shù)器count的值等于n,則輸出當前字符System.out.print(stringi);count = 0;System.out.println();/ 內循環(huán)結果,則需要換行,起到控制打印格式的作用 else count
6、= 0;/如果當前計數(shù)器 count 的值大于n,則計數(shù)器count清零,接著執(zhí)行外部循環(huán)System.out.println();17.1Java基礎編程試題(2)面試題 2 怎樣實現(xiàn)元素互換考題題干從鍵盤上輸入 10 個整數(shù),并將其放入一個一維數(shù)組中,然后將其前 5 個元 素與后 5個元素對換,即:第 1 個元素與第 10個元素互換,第 2個元素與第 9 個元素互換第5個元素與第6個元素互換。分別輸出數(shù)組原來各元素的值和對 換后各元素的值。試題分析由于本題的要求是實現(xiàn)頭尾元素互換,所以可以釆用取利用臨時變量的方 法來進行元素交換。參考答案具體代碼實現(xiàn)如下:package programe;
7、import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class HuHuanDemo public static void main(String args) print();public static int write() BufferedReader buf = newBufferedReader10;/* 申請緩沖數(shù)組 */int n;/* 開關量和中間量 */int array = new int10;for (i nt i = 0; i 10
8、; i+)/* 賦值 */bufi = new BufferedReader(newInputStreamReader(System.in);/* 給每個緩沖區(qū)定義 */do/* 判斷是否是空串,如是則重新輸入 */n = 1;System.out.print(請輸入第 ” + (i + 1) + 個整數(shù):”);try /* 建立一個異常捕獲 */arrayi = Integer.parseInt(bufi.readLine();/* 執(zhí)行串變整數(shù) */* Integer.parseInt(str) - str轉成 int 型 bufi.readLine() -*從系統(tǒng)輸入緩沖區(qū)讀入字符流給b
9、uf 緩沖區(qū)并返回字符串*/ catch (NumberFormatException e)/*捕獲異常 */System.out.pri ntln(數(shù)據(jù)輸入錯誤請重新輸入 );/* 處理異常 */n = 0; catch (IOException e) e.printStackTrace(); while (n = 0);return array;public static void print() int ary = write();int s;System.out.println(n 你輸入的數(shù)組是 :); for (int i = 0; i 10; i+)/* 輸出原數(shù)組 */ Sys
10、tem.out.print(aryi + );for (i nt i = 0; i 5; i+)/* 對換 */s = aryi;aryi = ary9 - i;ary9 - i = s;System.out.println(n 對換后的數(shù)組是 :);for (int i = 0; i 10; i+)/* 輸出對換后數(shù)組 */System.out.print(aryi + );System.out.println();17.1Java基礎編程試題(3)面試題 3 怎樣實現(xiàn)元素排序考題題干(1)用Java實現(xiàn)一種排序。(2) Java類實現(xiàn)序列化的方法是什么?( 3) 在COLLECTIO框架中
11、,如果實現(xiàn)自然比較方法,則需要實現(xiàn)什么樣的接口?試題分析排序是程序員經常遇到的,也是基本的技巧之一,一般的排序方法有插入 排序、冒泡排序、選擇排序、 Shell 排序、快速排序、歸并排序、堆排序、 SortUtil 等。下面詳細介紹 3 種排序方法。1 冒泡排序( Bubble Sort)最簡單的排序方法是冒泡排序法。這種方法的基本思想是,將待排序的元 素看作是豎著排列的 氣泡,較小的元素比較輕,從而要往上浮。在冒泡排序算 法中要對這個 氣泡序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這 個序列,并時刻注意兩個相鄰元素的順序是否正確。如果發(fā)現(xiàn)兩個相鄰元素的 順序不對,即 輕的元素在下面,
12、就交換它們的位置。顯然,處理一遍之后, 最輕 的元素就浮到了最高位置;處理兩遍之后,次輕的元素就浮到了次高位置。在進行第二遍處理時,由于最高位置上的元素 已是最輕元素,所以不必檢查。一般地,第 i 遍處理時,不必檢查第 i 高位置 以上的元素,因為經過前面 i-1 遍的處理,它們已正確地排序。2選擇排序( Selection Sort) 選擇排序的基本思想是,對待排序的記錄序列進行 n-1 遍的處理,第 1 遍 處理是將L仁n中最小者與L1交換位置,第2遍處理是將L2.n中最小者與 L2交換位置,,第i遍處理是將Li.n中最小者與Li交換位置。這樣,經過 i 遍處理之后,前 i 個記錄的位置就
13、已經按從小到大的順序排列好了。當然,在實際操作時,也可以根據(jù)需要,通過從待排序的記錄中選擇最大 者與其首記錄交換位置,按從大到小的順序進行排序處理。3插入排序(Insertion Sort)插入排序的基本思想是,經過i-1遍處理后,L1.i-1已排好序。第i遍處理 僅將Li插入L1.i-1的適當位置,使得L1.i還是排好序的序列。要達到這個目 的,可以用順序比較的方法。首先比較Li和 Li-1,如果Li-1 Lj則L1.i已排好序,第i遍處理就結束了;否則交換 Li與Li-1的位置,繼續(xù)比較Li-1和 Li-2,直到找到某一個位置j (1 j-)i,使得Lj Lj+1為止。簡言之,插入排序就是
14、每一步都將一個待排數(shù)據(jù)按其大小插入到已經排序 的數(shù)據(jù)中的適當位置,直到全部插入完畢。參考答案( 1 )具體代碼實現(xiàn)如下:package programe;import java.util.*;class InsertionSort ArrayList list;/ num 指的是數(shù)據(jù)的個數(shù), mod 指的是可以產生隨機數(shù)的范圍在1mod之間public InsertionSort(int num, int mod) list = new ArrayList(num);Random dom = new Random();System.out.println( 排序之前的數(shù)組 :); for (i
15、nt i = 0; i num; i+) list.add(new Integer(Math.abs (dom.nextInt() % mod + 1); System.out.println(list + i + = + list.get(i);public void SortIt() Integer tempInt;int MaxSize = 1;for (int i = 1; i = (Integer) list.get(MaxSize - 1) .intValue() list.add(MaxSize, tempInt);MaxSize+; else for (int j = 0; j
16、 = tempInt .intValue() list.add(j, tempInt);MaxSize+;break;System.out.println( 排序之后的數(shù)組 :);for (int i = 0; i list.size(); i+) System.out.println(list + i + = + list.get(i); public static void main(String args) InsertionSort is = new InsertionSort(10, 100);is.SortIt();17.1Java基礎編程試題(4)面試題 4 怎樣實現(xiàn) Singl
17、eton 模式編程考題題干請編寫一個 Singleton 模式的程序。試題分析Singleton模式的主要作用是保證在Java應用程序中,一個類Class只有一個 實例存在。在很多操作中,比如建立目錄數(shù)據(jù)庫連接都需要這樣的單線程操 作。使用Singleton的好處還在于可以節(jié)省內存,因為它限制了實例的個數(shù),有 利于Java垃圾回收。一般 Singleton 模式通常的形式為:定義一個類,它的構造函數(shù)為private的,它有一個 static 的 private 變量,在類初始化時實例化,通過一個public 的get In sta nee方法獲取對它的引用,繼而調用其中的方法。參考答案(兩種實
18、現(xiàn)方法,取一即可)paekage programe;publie elass Singleton private Singleton() / 注意這是 private 只供內部調用private final statie Singleton instanee = new Singleton();/這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問public static Singleton getInstance() return instance;或者:package programe;public class Singleton private static Singleton
19、 instance = null;public static synchronized Singleton getInstance() / 使用時生成實例,提高了效率!if (instance = null)instance = new Singleton();return instance;面試題 5 哥德巴赫猜想的近似證明考題題干哥德巴赫猜想是說任何一個大于 2 的偶數(shù)都能表示為兩個素數(shù)之和。請編 寫一個Java程序,驗證1100內哥德巴赫猜想的正確性,也就是近似證明哥德 巴赫猜想。試題分析可以應用枚舉的方法列出1100內的所有偶數(shù)。然后逐一驗證每個偶數(shù)是 否滿足哥德巴赫猜想的論證。如果有
20、一個不符合,就意味著哥德巴赫猜想不成 立。一個正偶數(shù) m 可以表示成 m=1+(m-1), m=2+(m-2), m=3+(m-3),.;m=m/2+m/2 。由于 m/2 的后半部分和前半部分的結果是一樣的,只是加數(shù)順序 不同,所以可以忽略。參考答案具體代碼實現(xiàn)如下:package programe;public class Guess public static void main(String args) System.out.pri ntl n(” 在 1100 范圍內,現(xiàn)在開始證實哥德巴赫猜想: );if (Testify_Guess(1, 100) System.out.pri n
21、tl n(” 在 1100 范圍內,哥德巴赫猜想是正確的。 ); else System.out.println(哥德巴赫猜想是錯誤的);public static boolean Testify_Guess(int low, int high) / 判斷 1100 范圍內的所有偶數(shù)是否符合哥德巴赫猜想,符合則返回 true ,反之則返回 falseint i, j = 0; boolean flag = true;for (i = low; i 2)/在1100之間選取大于2的偶數(shù)進行猜想測試 if (isGoldbach(i) j+;/j 用來控制輸出格式,每行輸出 5 個數(shù)據(jù) if (j
22、 = 5) System.out.println();j = 0; else flag = false;break; return flag;public static boolean isGoldbach(int a) / 判斷參數(shù) a 是否符合哥德巴赫猜想int i;boolean flag = false;for (i = 1; i = a / 2; i+) if (isPrime(i) & isPrime(a - i)/ 根據(jù)試題分析中的表達式,傳入相關的兩個參數(shù) flag = true;System.out.print(a + = + i + + + (a - i) + ); bre
23、ak;/ 只要有一個符合條件的就可以退出循環(huán),判斷下一個偶數(shù)return flag;public static boolean isPrime(int i) / 判斷參數(shù) i 是否是素數(shù),是則返回 true 反之則返回 false int n;boolean flag = true;if (1 = i)/ 1 本身 不是素數(shù),因此需把這個特殊的數(shù)字拋出 flag = false;for (n = 2; n en|8A deiAmseH 飛畫 II uoisjeAuogjoiunouuv ssep siqnd Ueuueosin ire/e loduui Jde|/|qseHinneAer lo
24、duui euujojjeqiju 門沖嘆引切可 loduuipublic static final String YUAN = 元;public static final String JIAO = 角 ;public static final String FEN = 分 ;public static final String DOT = .;private static AmountOfConversion formatter = null;/ 創(chuàng)建 AmountOfConversion 的實例對象/ 創(chuàng)建初始化一個 HashMap 對象private HashMap NumberMap
25、 = new HashMap();private HashMap HighnumberofMoney = new HashMap();/ 創(chuàng)建初始化一個 NumberFormat 對象private NumberFormat numberFormat = NumberFormat.getInstance();private AmountOfConversion() / 在用 new 創(chuàng)建 AmountOfConversion 對象時, 為 HashMap 對象進行 key-value 的映射 numberFormat.setMaximumFractionDigits(4);/ 設置數(shù)據(jù)的小數(shù)部
26、分的最大位數(shù)是 4 位 numberFormat.setMinimumFractionDigits(2);/ 設置數(shù)據(jù)的小數(shù)部分的最小位數(shù)是 2 位 numberFormat.setGroupingUsed(false);/* 設置此格式中是不可以使用組。如果設置可以使用組,則數(shù) 1234567 可能被格式化為 1,234,567*/NumberMap.put(0, ZERO);NumberMap.put(1, ONE);NumberMap.put(2, TWO);NumberMap.put(3, THREE);NumberMap.put(4, FOUR);NumberMap.put(5, F
27、IVE);NumberMap.put(6, SIX);NumberMap.put(7, SEVEN);NumberMap.put(8, EIGHT);NumberMap.put(9, NINE);NumberMap.put(DOT, DOT);HighnumberofMoney.put(1, TEN);HighnumberofMoney.put(2, HUNDRED);HighnumberofMoney.put(3, THOUSAND);HighnumberofMoney.put(4, TEN_THOUSAND);HighnumberofMoney.put(5, TEN);Highnumber
28、ofMoney.put(6, HUNDRED);HighnumberofMoney.put(7, THOUSAND);HighnumberofMoney.put(8, HUNDRED_MILLION); public static AmountOfConversion getInstance() / 判斷 AmountOfConversion 對象 formatter 是否初始化if (formatter = null)formatter = new AmountOfConversion();return formatter;/ 進行金額轉換的多種數(shù)據(jù)類型public String forma
29、t(String moneyStr) String result = 不能進行金額轉換! ; if(isConversion(moneyStr) result = convertIntegerTochinese(moneyStr);result = convertPointTochinese(result);return result;public String format(double moneyDouble) return format(numberFormat.format(moneyDouble); public String format(int moneyInt) return
30、format(numberFormat.format(moneyInt);public String format(long moneyLong) return format(numberFormat.format(moneyLong);public String format(Number moneyNum) return format(numberFormat.format(moneyNum);private String convertIntegerTochinese(String moneyStr) / 將參數(shù)中傳入的阿拉伯數(shù)字轉換成中文String result;StringBuff
31、er C2CStrBufer = new StringBuffer();for (int i = 0; i 0; i-) C2CStrBufer.insert(i, HighnumberofMoney.get(EMPTY+ moneyPatternCursor); moneyPatternCursor = moneyPatternCursor = 8 ? 1: moneyPatternCursor + 1;String fractionPart = C2CStrBufer.substring(C2CStrBufer .indexOf(.);C2CStrBufer.delete(C2CStrBu
32、fer.indexOf(.),C2CStrBufer.length();while (C2CStrBufer.i ndexOf(零拾)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零拾),C2CStrBufer.i ndexOf(零拾)+ 2, ZERO);while (C2CStrBufer.i ndexOf(零佰)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零佰),C2CStrBufer.i ndexOf(零佰)+ 2, ZERO);while (C2CStrBufer.i ndexOf(零仟
33、)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零仟),C2CStrBufer.i ndexOf(零仟)+ 2, ZERO);while (C2CStrBufer.i ndexOf(零萬)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零萬),C2CStrBufer.i ndexOf(零萬)+ 2, TEN_THOUSAND);while (C2CStrBufer.i ndexOf(零億)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零億),C2CStr
34、Bufer.i ndexOf(零億)+ 2, HUNDRED_MILLION); while (C2CStrBufer.i ndexOf(零零)!= -1) C2CStrBufer.replace(C2CStrBufer.i ndexOf零零),C2CStrBufer.i ndexOf(零零)+ 2, ZERO);if (C2CStrBufer.lastIndexOf(ZERO) = C2CStrBufer.length() - 1)C2CStrBufer.delete(C2CStrBufer.length() - 1,C2CStrBufer.length();C2CStrBufer.appe
35、nd(fractionPart);result = C2CStrBufer.toString();return result;private String convertPointTochinese(String moneyStr) / 對小數(shù)點后面的數(shù)字進行漢字處理String result;StringBuffer C2CStrBufer = new StringBuffer(moneyStr); int indexOfDot = C2CStrBufer.indexOf(DOT);C2CStrBufer.replace(indexOfDot, indexOfDot + 1, YUAN);C
36、2CStrBufer.insert(C2CStrBufer.length() - 1, JIAO);C2CStrBufer.insert(C2CStrBufer.length(), FEN);if (C2CStrBufer.indexOf(零角零分)!= -1)/ 沒有零頭,加整C2CStrBufer.replace(C2CStrBufer.indexOf零角零分),C2CStrBufer.length(), 整);else if (C2CStrBufer. in dexOf(零 分)!= -1)/ 沒有零分,加整C2CStrBufer.replace(C2CStrBufer.i ndexOf
37、零分),C2CStrBufer.length(), 整);else if (C2CStrBufer.indexOf(零角)!= -1)C2CStrBufer.delete(C2CStrBufer.i ndexOf零角),C2CStrBufer.i ndexOf(零角)+ 2);result = C2CStrBufer.toString();return result;private boolean isConversion(String moneyStr) / 判斷參數(shù)傳來的數(shù)據(jù)是否符合進行轉換的條件int fractionDigits = moneyStr.length() - moneyS
38、tr.indexOf(DOT) - 1;boolean flag = true;if (fractionDigits 2)System.out.println( 金額 + moneyStr + 的小數(shù)位多于兩位。 );/ 精度不能比分低 flag = false; return flag; public static void main(String args) System.out.println( 請輸入金額數(shù): );Scanner scanner = new Scanner(System.in);String str = scanner.next();System.out.println
39、( 轉換后的金額為: );System.out.println(getInstance().format(new Double(str); 17.1Java基礎編程試題(6) 程序的輸出結果如圖 17.5所示。圖 17.5 程序輸出結果 面試題 7 愛因斯坦的階梯問題 考題題干愛因斯坦曾出過這樣一道有趣的數(shù)學題:有一個長階梯,每步上 2 階,最 后剩 1階;若每步上 3階,最后剩 2階;若每步上 5 階,最后剩 4階;若每步 上 6 階,最后剩 5 階;只有每步上 7 階,最后一階也不剩。請問該階梯至少有 多少階。編寫一個Java程序解決該問題。試題分析從上面的描述中,可以把這個問題用數(shù)學方程
40、式的形式表達出來,代碼如 下:x%2=1x%3=2x%5=4x%6=5x%7=0從上面的表達式中不難看出,此方程 x 的解應該有無窮個,但這里要求的 是那個最小的解。這個解一定是7的倍數(shù),因為x%7=0,因此就用7的倍數(shù)依次與2、3、5、 6進行取模運算,如果都符合了上面表達式的條件,那么這個數(shù)就是本題的答 案,沿著這條思路,本題的具體代碼如下。參考答案具體代碼實現(xiàn)如下:package core_java;public class StairsFlight public static void main(String args) int x = 7, i, res = 0;7 350 之間11
41、9boolean flag = false;for (i = 1; i = 50; i+) / 將循環(huán)次數(shù)定為 50,表示尋找范圍為 if (x % 2 = 1) & (x % 3 = 2)& (x % 5 = 4) & (x % 6 = 5) res = x;flag = true;break;x = 7 * (i + 1);if (true = flag)System.out.println( 關于愛因 斯坦的階梯問題的答案是: + res); elseSystem.out.println(在 7 的 150 倍這個范圍內沒有結果 );程序的輸出結果如下: 關于愛因斯坦的階梯問題的答案是:
42、面試題 8 如何判斷回文數(shù)字考題題干有這樣一類數(shù)字,它們順著看和倒著看是相同的數(shù),例如:121、 656、2332等,這樣的數(shù)字就稱為回文數(shù)字。編寫一個Java程序,判斷從鍵盤接收的數(shù)字是否為回文數(shù)字。試題分析從回文數(shù)字的特點出發(fā),弄清楚其特點是解決本問題的關鍵。解決方案可 以通過將該數(shù)字倒置的辦法來判斷它是否是回文數(shù)字,例如: 586,它的倒置結 果為 685,因為 586!=685,故 586不是回文數(shù)字。參考答案具體代碼實現(xiàn)如下:package core_java;import java.util.Scanner;public class Palindrome public static
43、 void main(String args) int n;System.out.println( 請輸入一個整數(shù): );Scanner scByte = new Scanner(System.in);n = scByte.nextInt();if (isPalindrome(n)System.out.println(n + 是回文! );elseSystem.out.println(n + 不是回文! ); public static boolean isPalindrome(int n) / 判斷輸入的數(shù)字是否是回文 int m = reverse(n);if (m = n) return
44、 true;else return false; public static int reverse(int i) / 將輸入的數(shù)字進行倒置 int s, j = 0;s = i; while (s != 0) j = j * 10 + s % 10;s = s / 10; return j;程序的輸出結果如圖 17.6 所示圖 17.6 程序輸出結果面試題9根據(jù)表結構寫出相應的SQL語句考題題干有 3 個表:Employee 職工 (工號,姓名,性別,年齡,部門 )(num,name,sex, age,departmentno ) Wage 工資(編號,工資金額 )( No,amount )
45、Attend 出勤(工號,工資編號,出勤率 )(num,No,attendance)請根據(jù)要求,編寫相應的SQL語句。(1) 寫一個SQL語句,查詢工資金額為8000的職工工號和姓名。(2) 寫一個SQL語句,查詢職工張三的出勤率。(3) 寫一個SQL語句,查詢3次出勤率為0的職工姓名和工號。(4) 寫一個SQL語句,查詢出勤率為10并且工資金額小于2500的職工信 息。參考答案( 1 ) select eml. num, from Employee emlwhere (select count(*) from Attend where num =eml.numand No
46、= (select No from Wage where amount =8000 );( 2) select amount from Wage where No in(select No from Atte nd where num=(select num from Employeewhere n ame二張三 );( 3) select eml.num, from Employee emlwhere (select count(*) from Attend where num=eml.num and attendance=0) = 3;( 4) select * from
47、 Employee emlwhere (select No from Attend where num=eml.num and attendance=10) =(select No from Wage where amount2500 );面試題10編寫MySQL數(shù)據(jù)庫的JDBC連接考題題干請編寫訪問MySQL數(shù)據(jù)庫的JDBC!接代碼,查詢數(shù)據(jù)庫中user表的全部 內容,并打印出來。試題分析讀者必須掌握常見的數(shù)據(jù)庫訪問內容,包括驅動、端口等參數(shù)。參考答案具體代碼實現(xiàn)如下:import java.sql.Connection;import java.sql.DriverManager;impor
48、t java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DbConn private static DataSource ds = null;private static Connection conn = null;public static Connection getConn_jdbc() /使用JDBC連接數(shù)據(jù)庫try String url = jdbc:mysql:/ localhost:3306/bbsdb;String username = root;Stri
49、ng password = pla;Class.forName(com.mysql.jdbc.Driver). newInstance();conn = DriverManager.getConnection(url, username, password);return conn; catch (Exception e) System.err.println( 數(shù)據(jù)庫連接 異常 : + e.getMessage(); return null;public void CloseConn() / 關閉數(shù)據(jù)庫連接try conn.close(); catch (Exception e) Syste
50、m.err.println( 數(shù)據(jù)庫連接關 閉異常 : + e.getMessage();public static void main(String a) / 測試數(shù)據(jù)庫連接Connection conn;DbConn dc = new DbConn(); conn = dc.getConn_jdbc(); try Statement stmt = conn.createStatement();String strSql = select * from user;ResultSet rs = stmt.executeQuery(strSql); while (rs.next() System
51、.out.println(name : + rs.getString(name); catch (SQLException e) e.printStackTrace(); finally dc.CloseC onn ();/注意,必須在最后關閉數(shù)據(jù)庫連接,否則將嚴重影響系統(tǒng)性能面試題11怎樣用SAX解析XML考題題干用SAX方式解析Information.xml , XML文件如下:張春來 v/namevcollege涉卜國語學院vtelephon/telephone男,1975年生,碩士,05年調入省機關v/person試題分析需要掌握XML解析的主要兩種方式,以及
52、如何解析XML及其注意事項參考答案具體代碼實現(xiàn)如下:/ 文件名: SAXAnalysis.javaimport java.io.*;import java.util.Hashtable;import org.xml.sax.*;public class SAXAnalysis extends HandlerBaseprivate Hashtable table = new Hashtable();private String currentElement = null;private String currentValue = null;public void setTable(Hashtab
53、le table)this.table = table;public Hashtable getTable()return table;public void startElement(String tag, AttributeList attrs) throws SAXExceptioncurrentElement = tag;public void characters(char ch, int start, int length) throws SAXExceptioncurrentValue = new String(ch, start, length);public void end
54、Element(String name) throws SAXExceptionif (currentElement.equals(name)table.put(currentElement, currentValue);JSP內容顯示源碼jiexi.jsp:vTITLE剖析 XML文件 Information.xmlv/TITLE%KH.)uRuudino K. + (.seiouJBuuis Meu)ie6 e|qemseM(6u!4S) + KG丄兒 + . v占丄JuRuudino K. + (Quoqde冋bums /veu)記6丄qseq(6u山s)+ KG丄兒 + . 呈!甲澄迪
55、vpai二OQO uojxd丄v占丄JuRuudino KH11+(11e6enoo11)6uuis /veu)記6丄qseq(6u山s)+ KG丄兒 + . 型羽孤甫vpai二OQO luojxa丄v占丄JuRuudino K. + (C.eujeu.JBuuis /veu)記6丄qseq(6u山s)+ KG丄兒 + . v占丄JuRuudino K. WYOlldV9x|,=d3ad0a mi日V_LJupu!d川o J()e|qene6 je|pueq = eiqeiqseq e|qeiqseH J(je|pueq l(jepeej)eojnosndui /veu)esjed ds J(
56、)sisA|euvxVS Meu =eipueq sisA|euvxVS J () j es J e d x VSMe u s = dsesjedxVS JOeouesu |/veu AjoioejjesjedxVS = jds AjopejjesjedxVS Uesjedesjed eiijepeeyeiij /veu =epeejepeeyenj Kjujx uoneujJOjuiAaJeHd eu = e|ij eiy % 程序的輸出結果如圖17.7所示。面試題12利用Servelt的doPost方法實現(xiàn) 表單內容的讀取考題題干編寫一個HTML文件,利用Servelt的doPost方法實
57、現(xiàn)Form表單內容的讀 取。試題分析要求熟練掌握Servelt部署和web.xml的配置,以及HttpServlet對象的兩個 主要方法doGet()和doPost()的使用。參考答案具體代碼實現(xiàn)如下:/ 程序名稱: login.htmllogin.htmlInput your name:Choose your hobbies:WritingMountaineeringTourismvINPUT TY PE二SUBMIT NAME提交v/bodyv/htmlJava文件loginServlet.java的代碼如下所示:package lesson;import java.io.*;import
58、 javax.servlet.*;import javax.servlet.http.*;public class loginServlet extends HttpServlet/重寫doPost方法public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException/ 首先設置頭信息res.setContentType(text/html); req.setCharacterEncoding(gbk);/ 用 writer 方法返回響應數(shù)據(jù)PrintWr
59、iter out = res.getWriter(); out.println(); out.println(ShowMessage On Servlet);out.println(name: + req.getParameter(name); out.println();out.println(love: + req.getParameter(hobbies); out.println();out.close();public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,I
60、OException doPost(req,res);程序的輸出結果如下所示( 1) login.html 界面如圖 17.8 所示。(2) Servlet界面如圖17.9所示。面試題13編程實現(xiàn)Servlet的記錄訪問功能考題題干編寫一個Servlet,功能要求為:記錄訪問該 Servlet的客戶端IP和訪問時間,把記錄寫入 client_ip.log 文件。 client_ip.log 里的格式大致如下:9:36 2005-4-8 9:36 2005-4-8 參考答案/ 文件名: WriteFileServlet.javaimport java.io
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工作態(tài)度試題及答案
- 2025年智慧農業(yè)考試題大題及答案
- 2025年醫(yī)技系綜合考試題及答案
- 2025年高中語文人教版必修4練習:竇娥冤
- 2025年六點定位試題及答案
- 2025年縣區(qū)國企面試題型及答案
- 2025年信陽銀行筆試試題及答案
- 2025年寶潔分析測試題及答案
- 2025年65普法測試試題及答案
- 2025年羅翔老師經典試題及答案
- 小學校園欺凌行為調查問卷(學生卷)
- 2024年中儲糧集團招聘筆試參考題庫附帶答案詳解
- 新生兒常見問題與處理
- 萬達寶軟件邏輯計算筆試題
- 任務2 聚酯合成的漿料配制-PTA的輸送與卸料
- 采耳員工合同
- 汽車修理有限公司章程
- (多場景條款)過橋墊資借款合同
- 小學科學人教鄂教版四年級下冊全冊教案2023春
- 浙教版一年級下冊勞動項目三-任務三-巧擦黑板-課件
- 非遺文化介紹課件:扎染
評論
0/150
提交評論