易幻java開發知識點
一、單項選擇題
1、在Internet中,協議(FTP)用於檔案傳輸。
2、在OSI的7才層協議的體系中,不適於屬於網路層協議的是()
(A)UDP (B)IP (C)ARP(D)ICMP
答案:A
3、線上面的程式段中,對x的賦值語句的頻度為()
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
x=x+1:
(A)O(n) (B)O(2n) (C)O(n2) (D)log(2n)
答案 C
4、演算法的三種基本結構是順序結構,分支結構,(迴圈結構).
5、非線性結構是資料元素之間存在一種(多對多)關係
6、若某線性表最常用的操作是存取第i個元素和其前趨的值,則利用( 線性表)儲存方式最節省
解釋:順序表適合在隨機訪問的場合使用,訪問時間複雜度為O(1)
7、設G是一個森林,B是由G轉換得到的二叉樹,G中有n個非葉結點,則B中右指標域為空的結點有()個
(A)n+2 (B)n+1 ©n (D)n-1
答案:B
8、在linux系統中,檢視IP的命令是ifconfig
9、在linux系統在,程序排程採用的技術是動態優先數
10、vi編輯器的gg代表的意思:到檔案頭部
11、資料庫四個特性:ACID
12、聯合索引又叫複合索引。對於複合索引:Mysql從左到右的使用索引中的欄位,一個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index (a,b,c)。 可以支援a | a,b| a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 .
13、儲存器可分為記憶體儲器和外儲存器
14、小張用十六進位制、八進位制和十進位制寫了如下的一個等式:52-19=33,式中三個數是各不相同進位制的數,試問52、19、33分別為:(十進位制 十六進位制 八進位制)
15、在win7中,關閉當前應用的快捷鍵是(alt+f4)
16、斷開一個TCP連線,需要握手(4)次
17、基於比較的排序演算法是快速排序
18、有100個元素,用二分法查詢時,最大比較次數是(7)
解析:二分法查詢最大的比較次數應為log2(n+1),因此應為7次。
19、分時系統具有多路性、互動性、“獨佔”性和及時性的特徵
20、下面列出的四項中,不屬於計算機病毒特徵的是(D)
A.潛伏性 B.激發性 C.傳播性 D.免疫性
二、簡答題
1、作業系統中,什麼是臨界區?程序進入臨界區的排程原則是什麼?
答:每個程序中訪問臨界資源的那段程式稱為臨界區,每次只准許一個程序進入臨界區,進入後不允許其他程序進入。
程序進入臨界區的排程原則是:
①如果有若干程序要求進入空閒的臨界區,一次僅允許一個程序進入。
②任何時候,處於臨界區內的程序不可多於一個。如已有程序進入自己的臨界區,則其它所有試圖進入臨界區的程序必須等待。
③進入臨界區的程序要在有限時間內退出,以便其它程序能及時進入自己的臨界區。
④如果程序不能進入自己的臨界區,則應讓出CPU,避免程序出現“忙等”現象。
2、請描述String、StringBuffer、StringBuilder的區別和對應的使用場景
答:(1)區別:
String內容不可變,StringBuffer和StringBuilder內容可變;
StringBuilder非執行緒安全(單執行緒使用)
String與StringBuffer執行緒安全(多執行緒使用);
如果程式不是多執行緒的,那麼使用StringBuilder效率高於StringBuffer。
(2)使用場景:
如果要操作少量的資料用 String;
多執行緒操作字串緩衝區下操作大量資料 StringBuffer;
單執行緒操作字串緩衝區下操作大量資料 StringBuilder。
3、請打印出一下程式碼的輸出結果
public class Parent { private static String parentStaticFiels="parent static field"; static{ System.out.println(parentStaticFiels); System.out.println("parent static block"); } private String parentField="parent member field"; { System.out.println(parentField); System.out.println("parent non-static block"); } public Parent(){ System.out.println("parent constructor"); } } public class Child extends Parent{ private static String childStaticField="child static field"; static{ System.out.println(childStaticField); System.out.println("child static block"); } private String childField ="child member field"; { System.out.println(childField); System.out.println("child non-static block"); } public Child(){ System.out.println("child constructor"); } public static void main(String[] args) { new Child(); } }
答案:parent static field
parent static block
child static field
child static block
parent member field
parent non-static block
parent constructor
child member field
child non-static block
child constructor
三、程式設計題
1、有n個人圍成一圈,順序排號,從第一個開始報數(從1到3報數),凡報到3的人退出圈子,問最後最後留下的是原來第幾號的那位.
public class test { public static void main(String[] args) { int m=3; int n,s=0; Scanner in=new Scanner(System.in); n=in.nextInt(); //接收float型資料 for(int i=2;i<=n;++i){ s=(s+m)%i; System.out.println(s); } System.out.println(s+1); } }
2、100個執行緒併發對某個物件i進行加1並輸出當前i的值,請編寫上述的程式,保證輸出的i值不會重複
public class Task {
private final Lock lock = new ReentrantLock();
private static int num = 0;
public void add() {
lock.lock();
num++;
System.out.println(num);
lock.unlock();
}
}
public class AddThread implements Runnable {
private Task task;
public AddThread(Task task) {
this.task = task;
}
public void run() {
task.add();
}
}
public class TestLock {
public static void main(String[] args) {
Task task = new Task();
for(int i=0;i<100;i++){
Thread t=new Thread(new AddThread(task));
t.start();
}
}
}