1. 程式人生 > >易幻java開發知識點

易幻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();
        }
    }
}