




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Android工程師試卷1、基本面針對個人情況在合適的欄內打勾,以了解基本面的熟悉程度。領域技能一般熟練精通應用平臺Unix/LinuxAndroidWindows語言ASMC/C+JAVAJSPHTMLJavaScriptC#,.NETUnix Shell腳本批處理腳本PHP數(shù)據(jù)庫ORACLEDB2MYSQLSQLiteMS SQLServerWebServerWebLogicWebSphereTomCatApache相關技術Ajax,JQuery,extJS,easyUIJSONCXFIbatis/mybatisStruts/Spring/HibernateSocketJNICORBAEj
2、b進程間通信XML,DTDRADIUS/PAMDES,DES3,RSA,MD5,Base64開發(fā)工具Eclipse(Java)Eclipse(C/C+)Eclipse(Java fro Android)NetBeansVisual Studio(2005-2010)版本控制工具SVNVSSCVSGITClear Case協(xié)議TCP/IP,UDPHTTPFTPTELNETSSH設計工具Ration RoseERWinPowerDesignerFlashPhotoshop測試LoadRunnerJUnitAndroidJUnitJMock2、面試題2.1 概念1. 從一個序列中檢索一個值。列舉出幾
3、個構造序列的方法,哪種方式檢索效率最高?2. 從操作系統(tǒng)角度請闡述一下線程與進程的區(qū)別答:進程是系統(tǒng)進行資源分配和調度的一個獨立單位,線程是CPU調度和分派的基本單位進程和線程的關系:(1)一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程。(2)資源分配給進程,同一進程的所有線程共享該進程的所有資源。(3)線程在執(zhí)行過程中,需要協(xié)作同步。不同進程的線程間要利用消息通信的辦法實現(xiàn)同步。(4)處理機分給線程,即真正在處理機上運行的是線程。(5)線程是指進程內的一個執(zhí)行單元,也是進程內的可調度實體。線程與進程的區(qū)別:(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本
4、單位。(2)并發(fā)性:不僅進程之間可以并發(fā)執(zhí)行,同一個進程的多個線程之間也可以并發(fā)執(zhí)行。(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進程的資源。(4)系統(tǒng)開銷:在創(chuàng)建或撤銷進程的時候,由于系統(tǒng)都要為之分配和回收資源,導致系統(tǒng)的明顯大于創(chuàng)建或撤銷線程時的開銷。但進程有獨立的地址空間,進程崩潰后,在保護模式下不會對其他的進程產(chǎn)生影響,而線程只是一個進程中的不同的執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但是在進程切換時,耗費的資源較大,效率要差些。2.2數(shù)據(jù)庫篇1、下
5、表表名:T_STAFF,主鍵是STAFF_ID,請按照一個常用數(shù)據(jù)庫寫出該表的建表語句。并寫出一條觸發(fā)器,使得新增記錄時,將CREATE_TIME設置為系統(tǒng)時間。字段名字段類型描述STAFF_IDNUMBER(8)非空,主鍵STAFF_NAMEVARCHAR(60)非空,唯一索引STAFF_PASSWORDVARCHAR(128)可空STAFF_STATUSNUMBER(2)非空CREATE_TIMEDATETIME非空Create Table if not exists T_STAFF (STAFF_ID NUMBER(8) primary key NOT NULL Auto_increme
6、nt,index name STAFF_NAME Varchar(60) not null,STAFF_PASSWORD varchar(128),Staff_Status Number(20) not null,Create_Time dateTime not null);觸發(fā)器語句:Create Trigger insertTrigger before insert T_STAFF for begin insert into T_Staff(Create_Time) values(now();2.3 C/C+篇1、如何理解指針概念。答:指針是存放地址的變量struct Link struc
7、t Link * lpNext;Bool isCycleLink(struct Link * lpLink);1. 如下數(shù)據(jù)結構是個鏈表,如何判斷該鏈表是個無環(huán)鏈表?char str = “1234567890123456789012345678901234567890”;str15=0;2、下面的字符串長度是幾?3、請列出用C語言寫一個socket客戶端并從中讀取數(shù)據(jù)的步驟。首先是服務端的代碼如下:-server.c-#include <stdio.h>#include <stdlib.h>#include <string.h>#include <n
8、etinet/in.h>#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>int main() int sockfd,clientfd,len; struct sockaddr_in server_addr,client_addr; char buffer256; sockfd=socket(AF_INET,SOCK_STREAM,0
9、); if(sockfd<0) perror("create socket error. -> "); exit(1); server_addr.sin_family=AF_INET; server_addr.sin_port=8888;
10、 server_addr.sin_addr.s_addr=INADDR_ANY; if(bind(sockfd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr)<0) perror("bind socket error. -> "); exit(2);
11、 listen(sockfd,5); len=sizeof(struct sockaddr); printf("waiting for client:n"); clientfd=accept(sockfd,(struct sockaddr *)&client_addr,&len); /* recv(clientfd,buffer,256,0);*/
12、; memset(buffer,0,256); read(clientfd,buffer,256); printf("server received : %sn",buffer); memset(buffer,0,256); strcpy(buffer,"server has received your message."); /*send(client
13、fd,buffer,strlen(buffer),0);*/ write(clientfd,buffer,strlen(buffer); close(clientfd); close(sockfd); return 0; -然后這里放的是客戶端的代碼-client.c-#include <stdio.h>#include <stdlib.h>#include <string.h
14、>#include <netinet/in.h> #include <sys/types.h>#include <sys/socket.h>#include <unistd.h>int main() int sockfd,len; struct sockaddr_in server_addr; char buffer256; sockfd=socket(AF_INET,SOCK_STREA
15、M,0); if(sockfd<0) perror("create socket error. -> "); exit(1); server_addr.sin_family=AF_INET; server_addr.sin_p
16、ort=8888; inet_aton("8",&server_addr.sin_addr.s_addr); if(connect(sockfd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr)<0) perror("unable connect to server. -> ");
17、0; exit(2); memset(buffer,0,256); strcpy(buffer,"this is a message that client sended."); /* send(sockfd,buffer,strlen(buffer),0);*/ write(sockfd,buffer,strlen(buffer);
18、 /*recv(sockfd,buffer,256,0);*/ memset(buffer,0,256); read(sockfd,buffer,256); printf("server said : %sn",buffer); close(sockfd); return 0;&
19、#160;然后是需要在secureCRT等軟件中進行編譯 $ gcc server.c -o server -lsocket -lc $ gcc client.c -o client -lsocket -lnsl編譯通過之后就是測試的過程了,同時在secureCRT中打開兩個窗口,一個運行./server 另一個窗口運行./client server端先運行。2.4 Java篇
20、1、請闡述一下你對java多線程中同步的幾種方式,區(qū)別,及其重要性。(1) wait方法: 該方法屬于Object的方法,wait方法的作用是使得當前調用wait方法所在部分(代碼塊)的線程停止執(zhí)行,并釋放當前獲得的調用wait所在的代碼塊的鎖,并在其他線程調用notify或者notifyAll方法時恢復到競爭鎖狀態(tài)(一旦獲得鎖就恢復執(zhí)行)。 調用wait方法需要注意幾點: 第一點:wait被調用的時候必須在擁有鎖(即synchronized修飾的)的代碼塊中。 第二點:恢復執(zhí)行后,從wait的下一條語句開始執(zhí)行,因而wait方法總是應當在while循環(huán)中調用,以免出現(xiàn)恢復執(zhí)行后繼續(xù)執(zhí)行的條件
21、不滿足卻繼續(xù)執(zhí)行的情況。 第三點:若wait方法參數(shù)中帶時間,則除了notify和notifyAll被調用能激活處于wait狀態(tài)(等待狀態(tài))的線程進入鎖競爭外,在其他線程中interrupt它或者參數(shù)時間到了之后,該線程也將被激活到競爭狀態(tài)。 第四點:wait方法被調用的線程必須獲得之前執(zhí)行到wait時釋放掉的鎖重新獲得才能夠恢復執(zhí)行。(2) notify方法和notifyAll方法: notify方法通知調用了wait方法,但是尚未激活的一個線程進入線程調度隊列(即進入鎖競爭),注意不是立即執(zhí)行。并且具體是哪一個線程不能保證。另外一點就是被喚醒的這個線程一定是在等待wait所釋放的鎖。 no
22、tifyAll方法則喚醒所有調用了wait方法,尚未激活的進程進入競爭隊列。(3) synchronized關鍵字: 第一點:synchronized用來標識一個普通方法時,表示一個線程要執(zhí)行該方法,必須取得該方法所在的對象的鎖。 第二點:synchronized用來標識一個靜態(tài)方法時,表示一個線程要執(zhí)行該方法,必須獲得該方法所在的類的類鎖。 第三點:synchronized修飾一個代碼塊。類似這樣:synchronized(obj) /code. 。表示一個線程要執(zhí)行該代碼塊,必須獲得obj的鎖。這樣做的目的是減小鎖的粒度,保證當不同塊所需的鎖不沖突時不用對整個對象加鎖。利用零長度的byte
23、數(shù)組對象做obj非常經(jīng)濟。(4) atomic action(原子操作): 在JAVA中,以下兩點操作是原子操作。但是c和c+中并不如此。 第一點:對引用變量和除了long和double之外的原始數(shù)據(jù)類型變量進行讀寫。 第二點:對所有聲明為volatile的變量(包括long和double)的讀寫。 另外:在java.util.concurrent和java.util.concurrent.atomic包中提供了一些不依賴于同步機制的線程安全的類和方法。2、final,finally,finalize的區(qū)別。final修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,
24、不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。 finally再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)。 finalize方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個
25、方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。3、sleep()和wait()有什么區(qū)別?sleep是線程被調用時,占著cpu去睡覺,其他線程不能占用cpu,os認為該線程正在工作,不會讓出系統(tǒng)資源,wait是進入等待池等待,讓出系統(tǒng)資源,其他線程可以占用cpu4、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
26、?不可以5、當一個線程進入一個對象的一個synchronizated方法后,其他線程是否可以進入此對象的其他方法?可以去訪問非Synchronized方法。6、當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?值傳遞7、創(chuàng)建一個class對象有幾種方法?分別是什么?1.Class c=Class.for(“java.lang.String”);2.String str=new Stirng();Class c=Str.getClass();3.Class c=String.Class;8、如何在java中調用C編寫的函數(shù)?
27、9、如何獲取一個目錄下有多少個文件?File f=new File(“D:/”);Int count=f.list().length;public class FatherClassPublic FatherClass()System.out.println(“FatherClass Create”);public static class ChildClass extends FatherClass10、請寫出下列代碼的輸出結果:public ChildClass()System.out.println(“ChildClass Create”);public static void main
28、(String args)FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();FatherClass CreateFatherClass CreateChildClass Create11、請用Socket寫一個客戶端,并從中讀出一行打印出來。Socket socket=null;try socket=new Socket("",8888); BufferedReader pw = new BufferedReader(new InputStreamReader(socke
29、t.getInputStream(); System.out.println(pw.readLine(); pw.close();catch(Exception e) e.printStackTrace();Finally Try socket.close(); catch(IOException e e.printStackTrace(); 12、如何指定給java程序運行時需要的內存?13、當一個對象不再被使用時,如何才能從內存中消失?將該對象引用值為空14、請寫一個整數(shù)組成的矩陣轉置程序,即行變成列,列變成行。int transpose(int t);int transponse(int t);public int transponse(int t)int f=new intt0.lengtht.length; for(int i=0;i<t.length;i+)int index=0; index+; for(int x=0;i<ti.length;i+) int m=0; m+; fmindex=tix;Return f;15、現(xiàn)有面值分別為10元、30元、50元、100元面值的卡,但卡的成本分別為99%,98%,97%,96%?,F(xiàn)有客戶要求充值x元(x是10的整數(shù)倍),試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于Bow-tie-BN的LPG儲配站多災種風險評估研究
- 基于深度學習與RGB-D相機的香菇采摘點實時定位研究
- 基于銫錳鹵化物鈣鈦礦材料的制備、性能及其應用研究
- 基于機器學習構建PCOS證型預測模型及從厥陰論治經(jīng)驗
- 第19課《紫藤蘿瀑布》課件統(tǒng)編版語文七年級下冊
- 六年級敘事作文考試600字7篇范文
- 過臘八節(jié)的作文800字(14篇)
- 骨與關節(jié)感染
- 學習路上的故事敘事作文(14篇)
- 2025至2030中國機場廣告行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報告
- 【完美排版】山東科技出版社二年級下冊綜合實踐活動教案
- 公共政策學(第三版)-課件
- 齊魯醫(yī)學Lisfranc-損傷
- 大型鋼網(wǎng)架整體提升施工工法
- 干熄焦爐內固_氣流動與傳熱數(shù)值模擬畢業(yè)論文
- 公司股東變更登記申請書(一變一)
- 供應鏈金融業(yè)務工作開展情況總結匯報
- 基于motor的六相電機繞組分相設置
- 一年級數(shù)學學困生轉化典型案例
- 廣西壯族自治區(qū)醫(yī)院大全
- 電子時鐘 Multisim仿真
評論
0/150
提交評論