開發人員筆試題6篇
開發人員筆試題篇四:java_web開發人員筆試題
c ab d b b
abcd bd b abd abc
b b b c c
c c c b bc
c a abcdef abc c
ac c B d d
java 面試題
一.選擇題(每題1分)
1. jsp 有幾個內置對象?(c )(單選)
A 5個 B 6個 C 9個 D 8個
2. 在JAVA中,如何跳出當前的多重嵌套循環?( ab) (多選)
A break B return C forward D finally
3. 四種會話跟蹤技術,哪個范圍最大?( d ) (單選)
A page B request C session D application
4. java中有幾種方法可以實現一個線程?( b ) (單選)
A 1種 B 2種 C 3種 D 4種
5. 同步有幾種實現方法 ( b) (單選)
A 4種 B 2種 C 3種 D 1種
6. xml有哪些解析技術? ( abcd ) (多選)
A DOM B SAX C STAX D JDOM
7. 下列說法正確的是( )(多選)
A 構造器Constructor可被繼承
B String類不可以繼承
C 判斷兩個對象值相同用“==”
D char型變量中能不能存貯一個中文漢字
8.下面說法錯誤的是( ) (單選)
A Vector是線程安全的
B float f=3.4是正確的
C StringBuffer的長度是可變的
D StringBuffer的長度是不可變的
9. 下列關于集合的說法正確的是( )(多選)
A List 的具體實現包括 ArrayList 和 Vector
B Map 集合類用于存儲元素對(稱作"鍵"和"值"),其中每個鍵映射到一個值
C Set的元素是有序的
D Hashtable 是線程安全的。
10. 下列關于線程說法正確的是( )(多選)
A 調用sleep不會釋放對象鎖。
B 調用wait方法導致本線程放棄對象鎖
C 當一個線程進入一個對象的一個synchronized方法后,其它線程不可進入此對象的
其它方法
D notify:喚醒全部處于等待狀態的線程。
11. 給定JSP程序源碼如下,該JSP運行后輸出的結果是( )。(單選)
Count:
A Count:1 B Count:2 C 1:2 D Count:
12在J2EE中的一個JSP文件中,有表達式,它將輸出( )(單選)
a)2+3 b)5 c)23 d)不會輸出,因為表達式是錯誤的
13 在J2EE中,JSTL提供條件標簽以支持JSP頁面的各種條件,其中( )類似于Java語言的switch語句。(單選)
a) b) c) d)
14. 在進行Java Web開發時,假定一個變量保存在session中,要獲得這個變量的值,可以使用以下( )語句。(單選)
a) application.getAttribute(“name”)
b) pageContext.getAttribute(“name”)
c) session.getAttribute(“name”)
d) config.getInitParameter(“name”)
15)在J2EE中,編寫Servlet過濾器時,( )接口用于調用過濾器鏈中的下一個過濾器。( )(單選)
a)Filter b)FilterConfig c)FilterChain d)Servlet
16) 關于視圖的描述正確的是( ) (單選)
a) 視圖是一種特殊的表,它存儲了用戶定制的數據。
b) 視圖僅用于用戶進行查詢,不可以通過視圖對數據進行修改。
c) 在sql server中可以通過用T-sql語句來創建,也可以通過企業管理器。
d) 創建視圖只能操作本機器上的數據庫表。
17)STRUTS框架中,( )類在視圖層和控制層之間傳遞HTML表單數據。(單選) a) Action b) ActionForward c) ActionForm d) ActionServlet
18)Struts控制器的主要任務是接受用戶請求、根據用戶請求調用對應的模型組件、獲取業務邏輯執行結果的根據處理結果選擇適合的視圖組件返回給用戶,實現Struts控制器的類中不包括( )。(單選)
a) ActionServlet b) Action c) ActionForm d) ActionForward
19)在OOD中,類和接口之間的關系稱之為( )。(單選)
a) 泛化 b) 實現 c) 關聯 d) 繼承
20) 以下關于SessionFactory的說法哪些正確?( )(多選)
A) 對于每個數據庫事務,應該創建一個SessionFactory對象
B) 一個SessionFactory對象對應一個數據庫存儲源。
C) SessionFactory是重量級的對象,不應該隨意創建。如果系統中只有一個數據庫存儲源只需要創建一個。
D) SessionFactory的load方法用于加載持久化對象
21) 關于AOP錯誤的( )(單選)
A)AOP將散落在系統中的“方面”代碼集中實現
B)AOP有助于提高系統可維護性
C)AOP已經表現出將要替代面向對象的趨勢
D)AOP是一種設計模式,Spring提供了一種實現
22) 依賴注入說法正確的(單選)
A)依賴注入的目標是在代碼之外管理程序組建間的依賴關系
B)依賴注入即是“面向接口”的編程
C)依賴注入是面向對象技術的替代品
D)依賴注入的使用會增大程序的規模
23) 以下哪些屬于Session的方法?( )(多選)
A) load
B) save
C) delete
D) update
E) open
F) close
24) 下面那些是Hibernate的查詢方式( )(多選)
A) sql B) hql C) Criteria
25) 以下數據結構不屬于線性結構的是( )(單選)
A) 隊列 B) 線性表 C) 二叉樹 D) 棧
26) 下列是文件讀寫的類是( )(多選)
A) File Reader B) File C) FileWriter D) InputStream
27) 數據庫技術中的“臟數據',是指( )的數據。(單選)
A) 錯誤 B 回返 C 未提交 D 未提交的隨后又被撤消
28)在計算機中,—個字節是由多少個二進制位組成的( ) (單選)
A). 4 B). 8 C). 16 D). 24
29)設正x、y均為整型變量,且x=10 y=3,則以下語句printf("%d,%d\n",x--,--y); 的輸出結果是( )(單選)
A).10,3 B). 9,3 C). 9,2 D).10,2
30) 下列不屬于面向對象的方法是( )(單選)
A). 對象 B). 類 C). 繼承 D).過程調用
二. 填空(每空1分)
1. String s = new String("xyz");創建了_____個String 對象?
2. Math.round(9.5)等於_____ Math.round(-9.5)等於______
3. try 里有一個return語句,那么緊跟在這個try后的finally 里的code會被執行,什么時候被執行,在return_________ ( 前還是后?)
4. 如何現實servlet的單線程模式 _______________
5. 類變量必須帶的修飾符是 _______________
6. final類可以修飾在屬性 , 方法 和 _______ 前面
7. Java默認的包是___________________
8. Hibernate里面怎樣實現類與類之間的關系__________________________________
9. Socket 編程服務器端用____________類來創建socket對象
三. 判斷題(每題2分)
1. 依賴注入即是“面向接口”的編程。
2. Overload和Override都是java多態的不同體現形式。
3. String是最基本的數據類型
4. 啟動一個線程是用start
5. 接口可以繼承接口
四.簡答題(每題4分)
1. 下列程序打印結果是
int arr = {1,3,3,2,8};
String str = “”;
int i=0;
public void doIt{
for(;i
if(arr[i]>arr[i+1]){
str=arr[i]+arr[i+1]+str;
break;
} else if(arr[i]
str=arr[i]+str+arr[i+1];
i++;
continue;
} else{
str+=arr[i];
i++;
}
}
System.out.println(i);
System.out.println(str);
}
2. 將會打印出什么?
package test;
public class FatherClass
public FatherClass
{ System.out.println("FatherClass Create"); }
類:package test;import test.FatherClass;
public class ChildClass extends FatherClass
public ChildClass {
System.out.println("ChildClass Create"); }
public static void main(String args) { FatherClass fc = new FatherClass; ChildClass cc = new ChildClass; }}
輸出結果:
3.下列程序對還是錯,如果錯請說明原因!
abstract class Name {
private String name;
public abstract boolean isStupidName(String name)
4. 表:table1(FId,Fclass,Fscore),用最高效最簡單的SQL列出各班成績最高的列表,顯示班級,成績兩個字段。
5. 下面程序運行結果是
String arr1 ={”a”,”b”,”1″,”c”,”b”};
List lst1 = new ArrayList;
lst1.add(”d”);
Collections.addAll(lst1,arr1);
System.out.println(lst1);
Set set1 = new HashSet;
set1.add(”d”);
Collections.addAll(set1, arr1);
System.out.println(set1);
運行結果:
四.編程題(每題6分)
1. 寫一個Singleton出來
2一個表td中的部分Id有多個記錄,把所有有多個記錄的id查出來,并顯示共有多少條記錄數。
3 給你個字符串 String = “abcdefg”,請你把它倒序輸出。
4.寫出冒泡排序的實現
5 編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,應該輸出為“我ABC”而不是“我ABC+漢的半個”。
開發人員筆試題篇五:
1.下面是一些基本的數字電路知識問題,請簡要回答:
(1)什么是Setup和Holdup時間?
(2)什么是競爭與冒險現象?怎樣判斷?如何消除?
(3)請畫出用D觸發器實現2倍分頻的邏輯電路。
(4)什么是“線與”邏輯?要實現它,在硬件特性上有什么具體要求?
(5)什么是同步邏輯和異步邏輯?
(6)請畫出微機接口電路中,典型的輸入設備與微機接口邏輯示意圖(數據接口、控制接口、所存器/緩沖器)。
(7)你知道哪些常用的邏輯電平?TTL與COMS電平可以直接互連嗎?
2.可編程邏輯器件在現代電子設計中越來越重要,請問:
(1)你所知道的可編程邏輯器件有哪些?
(2)試用VHDL或Verilog,ABLE描述8位D觸發器邏輯
3.設想你將設計完成一個電子電路方案。請簡述用EDA軟件(如PROTEL)進行設計(包括原理圖和PCB圖)到調試出樣機的整個過程。在各個環節應注意哪些問題?
開發人員筆試題篇六:
1, 判斷字符串是否是這樣組成的,第一個必須是字母,后面可以是字母、數字、下劃線,總長度為5-20
var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
reg.test("a1a__a1a__a1a__a1a__");
2,截取字符串abcdefg的efg
var str = "abcdefg";
if (/efg/.test(str)) {
var efg = str.substr(str.indexOf("efg"), 3);
alert(efg);
}
3,判斷一個字符串中出現次數最多的字符,統計這個次數
//將字符串的字符保存在一個hash table中,key是字符,value是這個字符出現的次數
var str = "abcdefgaddda";
var obj = ;
for (var i = 0, l = str.length; i < l; i++) {
var key = str[i];
if (!obj[key]) {
obj[key] = 1;
} else {
obj[key]++;
}
}
/*遍歷這個hash table,獲取value最大的key和value*/
var max = -1;
var max_key = "";
var key;
for (key in obj) {
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert("max:"+max+" max_key:"+max_key);
4,IE與FF腳本兼容性問題
(1) window.event:
表示當前的事件對象,IE有這個對象,FF沒有,FF通過給事件處理函數傳遞事件對象
(2) 獲取事件源
IE用srcElement獲取事件源,而FF用target獲取事件源
(3) 添加,去除事件
IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)
FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)
(4) 獲取標簽的自定義屬性
IE:div1.value或div1[“value”]
FF:可用div1.getAttribute(“value”)
(5) document.getElementByName和document.all[name]
IE;document.getElementByName和document.all[name]均不能獲取div元素 FF:可以
(6) input.type的屬性
IE:input.type只讀
FF:input.type可讀寫
(7) innerText textContent outerHTML
IE:支持innerText, outerHTML
FF:支持textContent
(8) 是否可用id代替HTML元素
IE:可以用id來代替HTML元素
FF:不可以
這里只列出了常見的,還有不少,更多的介紹可以參看JavaScript在IE瀏覽器和Firefox瀏覽器中的差異總結
5,規避javascript多人開發函數重名問題
(1) 可以開發前規定命名規范,根據不同開發人員開發的功能在函數前加前綴
(2) 將每個開發人員的函數封裝到類中,調用的時候就調用類的函數,即使函數重名只要類名不重復就ok
6,javascript面向對象中繼承實現
javascript面向對象中的繼承實現一般都使用到了構造函數和Prototype原型鏈,簡單的代碼如下:
function Animal(name) {
this.name = name;
}
Animal.prototype.getName = function {alert(this.name)}
function Dog ;
Dog.prototype = new Animal("Buddy");
Dog.prototype.constructor = Dog;
var dog = new Dog;
7,FF下面實現outerHTML
FF不支持outerHTML,要實現outerHTML還需要特殊處理
思路如下:
在頁面中添加一個新的元素A,克隆一份需要獲取outerHTML的元素,將這個元素append到新的A中,然后獲取A的innerHTML就可以了。
SPANDIV
SPAN
P
8,編寫一個方法 求一個字符串的字節長度
假設:
一個英文字符占用一個字節,一個中文字符占用兩個字節
function GetBytes(str){
var len = str.length;
var bytes = len;
for(var i=0; i
if (str.charCodeAt(i) > 255) bytes++;
}
return bytes;
}
alert(GetBytes("你好,as"));
9,編寫一個方法 去掉一個數組的重復元素
var arr = [1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique = function{
var ret = ;
var o = ;
var len = this.length;
for (var i=0; i
var v = this[i];
if (!o[v]){
o[v] = 1;
ret.push(v);
}
}
return ret;
};
alert(arr.unique);
10,寫出3個使用this的典型應用
(1)在html元素事件屬性中使用,如
(2)構造函數
function Animal(name, color) {
this.name = name;
this.color = color;
}
(3)
(4)CSS expression表達式中使用this關鍵字
div element
12,如何顯示/隱藏一個DOM元素?
el.style.display = "";
el.style.display = "none";
el是要操作的DOM元素
13,JavaScript中如何檢測一個變量是一個String類型?請寫出函數實現
String類型有兩種生成方式:
(1)Var str = “hello world”;
(2)Var str2 = new String(“hello world”);
function IsString(str){
return (typeof str == "string" || str.constructor == String);
}
var str = "";
alert(IsString(1));
alert(IsString(str));
alert(IsString(new String(str)));
14,網頁中實現一個計算當年還剩多少時間的倒數計時程序,要求網頁上實時動態顯示“年還剩天時分秒”
15,補充代碼,鼠標單擊Button1后將Button1移動到Button2的后面
16,JavaScript有哪幾種數據類型
簡單:Number,Boolean,String,Null,Undefined
復合:Object,Array,Function
17,下面css標簽在JavaScript中調用應如何拼寫,border-left-color,-moz-viewport borderLeftColor
mozViewport
18,JavaScript中如何對一個對象進行深度clone
function cloneObject(o) {
if(!o || 'object' !== typeof o) {
return o;
}
var c = 'function' === typeof o.pop ? : ;
var p, v;
for(p in o) {
if(o.hasOwnProperty(p)) {
v = o[p];
if(v && 'object' === typeof v) {
c[p] = Ext.ux.clone(v);
}
else {
c[p] = v;
}
}
return c;
};
19,如何控制alert中的換行
\n alert(“p\np”);
20,請實現,鼠標點擊頁面中的任意標簽,alert該標簽的名稱.(注意兼容性)
SPANDIV
SPAN
P
21,請編寫一個JavaScript函數 parseQueryString,它的用途是把URL參數解析為一個對象,如:
var url = “;key1=1&key2=2″;
function parseQueryString(url){
var params = ;
var arr = url.split("?");
if (arr.length <= 1)
return params;
arr = arr[1].split("&");
for(var i=0, l=arr.length; i
var a = arr[i].split("=");
params[a[0]] = a[1];
}
return params;
}
var url = ";key1=1&key2=2";
var ps = parseQueryString(url);
alert(ps["key1"]);
22,ajax是什么? ajax的交互模型? 同步和異步的區別? 如何解決跨域問題?
Ajax是多種技術組合起來的一種瀏覽器和服務器交互技術,基本思想是允許一個互聯網瀏覽器向一個遠程頁面/服務做異步的http調用,并且用收到的數據來更新一個當前web頁面而不必刷新整個頁面。該技術能夠改進客戶端的體驗。包含的技術:
XHTML:對應W3C的XHTML規范,目前是XHTML1.0。
CSS:對應W3C的CSS規范,目前是CSS2.0
DOM:這里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中 JavaScript:對應于ECMA的ECMAScript規范
XML:對應W3C的XML DOM、XSLT、XPath等等規范
XMLHttpRequest:對應WhatWG的Web Applications1.0規范
AJAX交互模型
同步:腳本會停留并等待服務器發送回復然后再繼續
異步:腳本允許頁面繼續其進程并處理可能的回復
跨域問題簡單的理解就是因為JS同源策略的限制,域名下的JS無法操作或下的對象,具體場景如下:
PS:(1)如果是端口或者協議造成的跨域問題前端是無能為力的
(2) 在跨域問題上,域僅僅通過URL的首部來識別而不會嘗試判斷相同的IP地址對應的域或者兩個域是否對應一個IP
前端對于跨域的解決辦法:
(1) document.domain+iframe
(2) 動態創建script標簽
23,什么是閉包?下面這個ul,如何點擊每一列的時候alert其index?
這是第一條
這是第二條
這是第三條
內部函數被定義它的函數的外部區域調用的時候就產生了閉包。
(function A {
var index = 0;
var ul = document.getElementById("test");
var obj = ;
for (var i = 0, l = ul.childNodes.length; i < l; i++) {
if (ul.childNodes[i].nodeName.toLowerCase == "li") {
var li = ul.childNodes[i];
li.onclick = function {
index++;
alert(index);
}
}
}
});
24,請給出異步加載js方案,不少于兩種
默認情況javascript是同步加載的,也就是javascript的加載時阻塞的,后面的元素要等待javascript加載完畢后才能進行再加載,對于一些意義不是很大的javascript,如果放在頁頭會導致加載很慢的話,是會嚴重影響用戶體驗的。
異步加載方式:
(1) defer,只支持IE
(2) async:
(3) 創建script,插入到DOM中,加載完畢后callBack,見代碼:
function loadScript(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function{
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback;
}
};
} else { //Others: Firefox, Safari, Chrome, and Opera
script.onload = function{
callback;
};
}
script.src = url;
document.body.appendChild(script);
}
25,請設計一套方案,用于確保頁面中JS加載完全。
var n = document.createElement("script");
n.type = "text/javascript";
//以上省略部分代碼
//ie支持script的readystatechange屬性(IE support the readystatechange event for script and css nodes)
if(ua.ie){
n.onreadystatechange = function{
var rs = this.readyState;
if('loaded' === rs || 'complete'===rs){
n.onreadystatechange = null;
f(id,url); //回調函數
}
};
//省略部分代碼
//safari 3.x supports the load event for script nodes(DOM2)
n.addEventListener('load',function{
f(id,url);
});
//firefox and opera support onload(but not dom2 in ff) handlers for
//script nodes. opera, but no ff, support the onload event for link
//nodes.
}else{
n.onload = function{
f(id,url);
};
}
26,js中如何定義class,如何擴展prototype?
Ele.className = “”; //在css中定義,形式如下:. {…}
A.prototype.B = C;
A是某個構造函數的名字
B是這個構造函數的屬性
C是想要定義的屬性的值
27,如何添加html元素的事件,有幾種方法.
(1) 為HTML元素的事件屬性賦值
(2) 在JS中使用ele.on = function {…}
(3) 使用DOM2的添加事件的方法 addEventListener或attachEvent
28,documen.write和 innerHTML的區別
document.write只能重繪整個頁面
innerHTML可以重繪頁面的一部分
29,多瀏覽器檢測通過什么?
(1) navigator.userAgent
(2) 不同瀏覽器的特性,如addEventListener
30,js的基礎對象有那些, window和document的常用的方法和屬性列出來
String,Number,Boolean
Window:
方法:setInterval,setTimeout,clearInterval,clearTimeout,alert,confirm,open
屬性:name,parent,screenLeft,screenTop,self,top,status
Document
方法:createElement,execCommand,getElementById,getElementsByName,getElementByTagName,write,writeln
屬性:cookie,doctype,domain,documentElement,readyState,URL,
31,前端開發的優化問題
(1) 減少http請求次數:css spirit,data uri
(2) JS,CSS源碼壓縮
(3) 前端模板 JS+數據,減少由于HTML標簽導致的帶寬浪費,前端用變量保存AJAX請求結果,每次操作本地變量,不用請求,減少請求次數
(4) 用innerHTML代替DOM操作,減少DOM操作次數,優化javascript性能
(5) 用setTimeout來避免頁面失去響應
(6) 用hash-table來優化查找
(7) 當需要設置的樣式很多時設置className而不是直接操作style
(8) 少用全局變量
(9) 緩存DOM節點查找的結果
(10) 避免使用CSS Expression
(11) 圖片預載
(12) 避免在頁面的主體布局中使用table,table要等其中的內容完全下載之后才會顯示出來,顯示比div+css布局慢
32,如何控制網頁在網絡傳輸過程中的數據量
啟用GZIP壓縮
保持良好的編程習慣,避免重復的CSS,JavaScript代碼,多余的HTML標簽和屬性 33,Flash、Ajax各自的優缺點,在使用中如何取舍?
Ajax的優勢
(1) 可搜索型
(2) 開放性
(3) 費用
(4) 易用性
(5) 易于開發
Flash的優勢
(1) 多媒體處理
(2) 兼容性
(3) 矢量圖形 比SVG,Canvas優勢大很多
(4) 客戶端資源調度,比如麥克風,攝像頭
Sdd;d’dsdsdsd