第一篇:上海瑭錦簡述Java工程師
上海瑭錦簡述Java工程師
Java自1995年問世以來,因其卓越的通用性、高效性、平臺移植性 和安全性等特性,成為全球范圍內(nèi)應(yīng)用范圍最廣的開發(fā)語言,而且 而且即使歷經(jīng)十余年發(fā)展仍然在行業(yè)內(nèi)保持著“常青樹”的地位。Java軟件工程師是指運用Java這種開發(fā)語言去完成軟件產(chǎn)品的軟件程序設(shè)計、開發(fā)、測試、維護(hù)升級等工作的人員。
職業(yè)概述:
Java的應(yīng)用可以說是無處不在,從桌面辦公應(yīng)用到網(wǎng)絡(luò)數(shù)據(jù)庫等應(yīng)用,從PC到嵌入式移動平臺,從Java小應(yīng)用程序(Applet)到架構(gòu)龐大的J2EE企業(yè)級解決方案,處處都有Java的身影,就連美國大型太空項目當(dāng)中,也使用了Java來開發(fā)控制系統(tǒng)和相關(guān)軟件。用途如此之廣的Java造就了Java工程師的輝煌,使其在軟件工程師的領(lǐng)域里獨占鰲頭!Java軟件工程師運用Java這個開發(fā)工具去完成軟件產(chǎn)品的軟件程序設(shè)計、開發(fā)、測試、維護(hù)升級等工作。
工作內(nèi)容:
完成軟件的設(shè)計、開發(fā)、測試、修改bug等工作,包括業(yè)務(wù)需求的溝通,功能模塊詳細(xì)設(shè)計,業(yè)務(wù)功能實現(xiàn)與單元測試,系統(tǒng)維護(hù);參與產(chǎn)品構(gòu)思和架構(gòu)設(shè)計;撰寫相關(guān)的技術(shù)文檔;支持售前技術(shù)服務(wù);支持項目對產(chǎn)品的應(yīng)用服務(wù)。
職業(yè)要求:
教育培訓(xùn):計算機相關(guān)專業(yè),大專及以上學(xué)歷。相關(guān)專業(yè)證書有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD)認(rèn)證。目前國內(nèi)在java軟件工程師培訓(xùn)中有名的是瑭錦Tanjurd,這些都是擁有很多年的辦學(xué)經(jīng)驗,在java軟件培訓(xùn)上擁有其獨特的優(yōu)勢。
工作經(jīng)驗:有一定的軟件分析設(shè)計能力;熟悉Java、Servlet、JSP、EJB等開發(fā)技術(shù);熟練使用Eclipse或jbuilder等java開發(fā)工具;熟悉JAVA+STRUTS體系結(jié)構(gòu)和開發(fā)工具;熟悉至少一種數(shù)據(jù)庫的開發(fā)和設(shè)計;具有良好的學(xué)習(xí)能力,具有強烈的工作責(zé)任心、有良好的溝通能力和團(tuán)隊合作精神。
薪酬參考:
據(jù)智聯(lián)招聘上對上海java工程師的薪資據(jù)說顯示,截止到2012年6月13日,java工程師的平均水平已達(dá)6435。根據(jù)現(xiàn)在移動互聯(lián)網(wǎng)中安卓市場的份額,相信這一職業(yè)的工資水平會一直上升.根據(jù)IDC的統(tǒng)計數(shù)字,在所有軟件開發(fā)類人才的需求中,對Java工程師的需求達(dá)到全部需求量的60%~70%。同時,Java工程師的薪水相對較高。Java軟件工程師一般月薪范圍在4000-10000元,遠(yuǎn)遠(yuǎn)超過了應(yīng)屆畢業(yè)生月薪2500元的平均水平。通常來說,有一年工作經(jīng)驗的Java高級軟件工程師的薪酬大致在年薪10—13萬左右。
就業(yè)前景:
Java是目前世界上最流行的計算機編程語言,是一種可以編寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。這可以概括JAVA有著自己獨特的優(yōu)勢:語言簡單、是一個面向?qū)ο蟆⒎植际綉?yīng)用并且安全、體系結(jié)構(gòu)中立并且可移植,最重要,它是一個動態(tài)語言。
權(quán)威統(tǒng)計機構(gòu)統(tǒng)計——在所有軟件開發(fā)類人才的需求中,對 Java工程師的需求達(dá)到全
部需求量的60%~70%。Java工程師的薪水相對較高,通常來說,具有3~5年開發(fā)經(jīng)驗的工程師,擁有年薪 10萬元是很正常的一個薪酬水平。
Java發(fā)展方向:
一是成為管理人員,例如產(chǎn)品研發(fā)經(jīng)理,技術(shù)經(jīng)理,項目經(jīng)理等繼續(xù);二是他的技術(shù)工作之路,成為高級軟件工程師、需求工程師等。還是看看IDC Java工程師的薪水相對較高。Java軟件工程師一般月薪范圍在4000-10000元,遠(yuǎn)遠(yuǎn)超過了應(yīng)屆畢業(yè)生月薪2500元的平均水平。通常來說,有一年工作經(jīng)驗的Java高級軟件工程師的薪酬大致在年薪10—13萬左右。
Tanjurd建議Java就業(yè)方向:可以從事JSP網(wǎng)站開發(fā)、Java編程、Java游戲開發(fā)、Java桌面程序設(shè)計,以及其他與Java語言編程相關(guān)的工作。可進(jìn)入電信、銀行、保險專業(yè)軟件開發(fā)公司等從事軟件設(shè)計和開發(fā)工作。
第二篇:上海瑭錦解說UI設(shè)計
上海瑭錦解說UI設(shè)計
1簡介
軟件設(shè)計可分為兩個部分:編碼設(shè)計與UI設(shè)計。UI的本意是用戶界面,是英文User和 Interface的縮寫。從字面上看是用戶與界面2個部分組成,但實際上還包括用戶與界面之間的交互關(guān)系。[1]
UI設(shè)計是指對軟件的人機交互、操作邏輯、界面美觀的整體設(shè)計。好的UI設(shè)計不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由,充分體現(xiàn)軟件的定位和特點。UI界面即是用戶界面的簡稱,UI設(shè)計是對界面美觀的整理設(shè)計,它可以把網(wǎng)站、手機界面、軟件游戲界面變的更加有個性、漂亮、簡單
2內(nèi)容
與之相應(yīng),UI設(shè)計師的職能大體包括三方面:一是圖形設(shè)計,即傳統(tǒng)意義上的“美工”。當(dāng)然,實際上他們承擔(dān)的不是單純意義上美術(shù)工人的工作,而是軟件產(chǎn)品的產(chǎn)品“外形”設(shè)計。二是交互設(shè)計,主要在于設(shè)計軟件的操作流程、樹狀結(jié)構(gòu)、操作規(guī)范等。一個軟件產(chǎn)品在編碼之前需要做的就是交互設(shè)計,并且確立交互模型,交互規(guī)范。三是用戶測試/研究,這里所謂的“測試”,其目標(biāo)恰在于測試交互設(shè)計的合理性及圖形設(shè)計的美觀性,主要通過以目標(biāo)用戶問卷的形式衡量UI設(shè)計的合理性。如果沒有這方面的測試研究,UI設(shè)計的好壞只能憑借設(shè)計師的經(jīng)驗或者領(lǐng)導(dǎo)的審美來評判,這樣就會給企業(yè)帶來極大的風(fēng)險。3 就業(yè)前景
UI即用戶界面設(shè)計行業(yè)剛剛在全球軟件業(yè)興起,屬于高薪技術(shù)設(shè)計產(chǎn)業(yè),與國外在同步發(fā)展水平。其次國內(nèi)外眾多大型IT企業(yè)(例如:百度、騰訊、Yahoo、中國移動、Nokia、聯(lián)想、網(wǎng)易、微軟、盛大、淘寶等眾多企業(yè))均已成立專業(yè)的UI設(shè)計部門,但專業(yè)人才稀缺,人才資源爭奪激烈。Tanjurd表示UI就業(yè)市場供不應(yīng)求。
我國UID市場尚在萌芽階段,人才缺口巨大,目前,中國市場上的手機、軟件、網(wǎng)站等產(chǎn)品,同質(zhì)化程度非常高,過去企業(yè)在設(shè)計產(chǎn)品的時候,主要是在功能、質(zhì)量或者產(chǎn)品外觀上和競爭對手有所區(qū)別,而現(xiàn)在隨著技術(shù)的進(jìn)步和市場的發(fā)展,越來越多的企業(yè)意識到用戶體驗的重要性了,而這種用戶體驗的提升則主要依賴于UID的勞動。而由于人力市場的UID人才供應(yīng)不足,加之企業(yè)人才競爭激烈,往往企業(yè)很難招到UID,像谷歌這樣的全球性公司,也一樣面臨UID崗位空缺的窘境。專家預(yù)測2015年整個UID行業(yè)的人才缺口將達(dá)到100萬。
瑭錦Tanjurd畢業(yè)的 UI設(shè)計工作的年薪基本保持在10到15萬,經(jīng)驗豐富者可以達(dá)到20萬,資深的UI設(shè)計人員年薪可以更高。
4從業(yè)/設(shè)計方向
UI界面設(shè)計所涉及的領(lǐng)域有平面設(shè)計、網(wǎng)站UI界面設(shè)計、手機UI界面設(shè)計、安卓和ios軟件、游戲界面設(shè)計等。網(wǎng)站是展示公司、展示產(chǎn)品的重要網(wǎng)絡(luò)平臺,用戶可以通過網(wǎng)站全面的了解公司和產(chǎn)品,有了UI界面設(shè)計師,網(wǎng)站才能修飾的更加美觀,吸引用戶,像大家經(jīng)常逛的淘寶店,有沒有發(fā)現(xiàn)許多店家的網(wǎng)店都是做的十分精細(xì)漂亮呢,那這就歸功與UI界面設(shè)計師了。
瑭錦Tanjurd UI界面設(shè)計師從工作內(nèi)容可以分為3個方向:
1、研究工具:研究界面----圖形設(shè)計師,簡單的說就是美工,為軟件產(chǎn)品的外形設(shè)計師。界
面設(shè)計不是單純的美術(shù)繪畫,他需要定位使用者、使用環(huán)境、使用方式并且為最終用戶而設(shè)計,是純粹的科學(xué)性的藝術(shù)設(shè)計。檢驗一個界面的標(biāo)準(zhǔn)是最終用戶的感受。所以界面設(shè)計要和用戶研究緊密結(jié)合,是一個不斷為最終用戶設(shè)計滿意視覺效果的過程。[3]
2、研究人與界面的關(guān)系:研究人與界面的關(guān)系---交互設(shè)計師,一個網(wǎng)站的構(gòu)建流程都是由交互設(shè)計師完成的。交互設(shè)計師的工作內(nèi)容就是設(shè)計軟件的操作流程,樹狀結(jié)構(gòu),軟件的結(jié)構(gòu)與操作規(guī)范(spec)等。一個軟件產(chǎn)品在編碼之前需要作的就是交互設(shè)計,并且確立交互模型,交互規(guī)范。
3、研究人:研究人----用戶測試/研究工程師。任何產(chǎn)品上市之前都需要通過測試,用戶測試/研究工程師的職責(zé)就和游戲玩家里面的測試人員一樣,發(fā)現(xiàn)BUG,并反饋給技術(shù)人員進(jìn)行修改完善。這個測試和編碼沒有任何關(guān)系,主要是測試交互設(shè)計的合理性以及圖形設(shè)計的美觀性。測試方法一般都是采用焦點小組,用目標(biāo)用戶問卷的形式來衡量UI設(shè)計的合理性。這個職位很重要,如果沒有這個職位,UI設(shè)計的好壞只能憑借設(shè)計師的經(jīng)驗或者領(lǐng)導(dǎo)的審美來評判,這樣就會給企業(yè)帶來嚴(yán)重的風(fēng)險性。
第三篇:上海瑭錦安卓開發(fā)心得
上海瑭錦安卓開發(fā)心得
對于軟件開發(fā)工程師來說學(xué)習(xí)C語言是一個必經(jīng)得學(xué)習(xí)之路,因為他是編程語言中得基礎(chǔ),如果沒有C語言得編寫能力,那么就談不上是軟件開發(fā)工程師,所以學(xué)好C語言是成為軟件開發(fā)工程師得基礎(chǔ),那么我們?nèi)绾瘟私釩語言呢?首先我們要知道C語言是匯編語言中最基礎(chǔ)得編寫語言,它集成了所有匯編語言得大部分優(yōu)點,能實現(xiàn)低級語言得眾多功能。
C語言把高級語言與低級語言相結(jié)合創(chuàng)造出自己得匯編語言風(fēng)格,塑造出自己得匯編語言工作單元,C語言得結(jié)構(gòu)特點是編寫代碼和相關(guān)數(shù)據(jù)可以分隔化除了程序和相關(guān)得必要信息保持彼此獨立得關(guān)系,這種關(guān)系可以是我們編寫得程序?qū)哟位忧逦?,更加便于使用、維護(hù)和調(diào)試,它會以給用戶方便得調(diào)用功能,可以多元化、多種循環(huán)、控制編寫語句得控制導(dǎo)向,從而使我們得編寫程序更加結(jié)構(gòu)化、實用化。
這些都可以讓C語言實現(xiàn)決策目得得要求,C語言得應(yīng)用指針特性使得其應(yīng)用范圍增加,應(yīng)用面變大,增加了程序得安全性。不容易被惡意程序所利用,C語言得對其處理標(biāo)準(zhǔn)化、針對于編寫函數(shù)得標(biāo)記、多線程得支持、從新定義新得程序安全定義有了更多得廣泛得選擇。它得編寫靈活和緊湊編寫序列使得書寫程序更加自由化,它可以直接訪問我們常用得物理地址,簡潔得使用操作使得用戶在對硬件上得要求更加簡潔,它可以移植%86得公共代碼在相關(guān)得編寫程序上,這一特性使得其在不同環(huán)境中運行。它得表達(dá)能力使得其在各種系統(tǒng)和相關(guān)運行環(huán)境下可以自由得發(fā)揮它得編寫和使用得能力。
第四篇:JAVA工程師
【崗位職責(zé)】
1.從事公司核心業(yè)務(wù)系統(tǒng)的開發(fā)、調(diào)試,參與產(chǎn)品的分析,設(shè)計、開發(fā)以及測試幾個階段;
2.編寫系統(tǒng)開發(fā)文檔、技術(shù)手冊。
【任職資格】
1.計算機或相關(guān)專業(yè)本科以上學(xué)歷,2年以上J2EE開發(fā)經(jīng)驗,有J2EE項目管理與項目設(shè)計經(jīng)驗優(yōu)先;
2.精通Java編程,熟悉J2EE、MVC架構(gòu)和UML建模語言等相關(guān)技術(shù),熟練掌握面向?qū)ο蟮某绦蛟O(shè)計方法,熟悉或了解各種數(shù)據(jù)結(jié)構(gòu)和算法模型;
3.能熟練使用開發(fā)框架:SpringMVC、myBatis、Spring;
4.熟練掌握Html、Css、Javascript、JSP、Servlet、XML、JDBC、SOA、AOP等J2EE常用技術(shù);
5.能熟練使用MySql、Oracle等數(shù)據(jù)庫產(chǎn)品,并能熟練編寫SQL語句.6.能熟練使用Eclipse,IDEA等開發(fā)工具進(jìn)行項目開發(fā)。
6.熟悉JBOSS、Tomcat等服務(wù)器產(chǎn)品,熟悉安裝、調(diào)試、發(fā)布配置應(yīng)用,熟悉Linux操作系統(tǒng)更佳;
7.有源碼研究愛好者優(yōu)先,如有參與開源項目請附上github或項目地址;
8.能承受一定的工作壓力,有責(zé)任心、上進(jìn)心,具備良好的自學(xué)能力和獨立解決問題能力。
基本待遇:
富有競爭力的基本薪資+實際工資作為基數(shù)繳納的五險一金+商業(yè)保險+工作日補助+加班補貼+各類國家規(guī)定的福利+公司內(nèi)部特有員工福利等
第五篇:java工程師面試題
西安三元數(shù)碼軟件有限公司 外派JAVA軟件工程師筆試題4303
返回上級目錄
選擇題
1:在軟件生命周期中,下列哪個說法是不準(zhǔn)確的?
A.軟件生命周期分為計劃、開發(fā)和運行三個階段
B.在計劃階段要進(jìn)行問題焉醛和需求分析
C.在開發(fā)后期要進(jìn)行編寫代碼和軟件測試
D.在運行階段主要是進(jìn)行軟件維護(hù)
2:public class Parent {
int change(){…} }
class Child extends Parent {
}
Which methods can be added into class Child?
A.public int change(){} B.abstract int chang(){} C.private int change(){} D.none 3:
1.Give the following method: 2.public void method(){ 3.String a,b;
4.a=new String(“hello world”);5.b=new String(“game over”);6.System.out.println(a+b+”ok”);7.a=null;8.a=b;
9.System.out.println(a);10.}
11.In the absence of compiler optimization, which is the earliest point the object a refered is definitely elibile to be garbage collection.A.before line 5 B.before line 6 C.before line 7 D.before line 9 4:
1.String s=”Example String”;Which operation is not legal? A.int i=s.length();B.s[3]=”x”;
C.String short_s=s.trim();D.String t=”root”+s;
5:關(guān)于垃圾收集的哪些敘述是對的。
A.程序開發(fā)者必須自己創(chuàng)建一個線程進(jìn)行內(nèi)存釋放的工作。
B.垃圾收集將檢查并釋放不再使用的內(nèi)存。
C.垃圾收集允許程序開發(fā)者明確指定并立即釋放該內(nèi)存。
D.垃圾收集能夠在期望的時間釋放被java對象使用的內(nèi)存。
6:
1.Give the following code: 2.public class Example{
3.public static void main(String args[]){ 4.int l=0;5.do{
6.System.out.println(“Doing it for l is:”+l);7.}while(--l>0)
8.System.out.println(“Finish”);9.} 10.}
11.Which well be output: A.Doing it for l is 3 B.Doing it for l is 1 C.Doing it for l is 2 D.Doing it for l is 0
7: Which of the following statements are true?
A.The automatic garbage collection of the JVM prevents programs from ever running out of memory
B.A program can suggest that garbage collection be performed and force it C.Garbage collection is platform independent
D.An object becomes eligible for garbage collection when all references denoting it are set to null.8:下面關(guān)于變量及其范圍的陳述哪些是錯的。
A.實例變量是類的成員變量。
B.實例變量用關(guān)鍵字static聲明。
C.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建
D.局部變量在使用前必須被初始化。
9:
1.Which is the most appropriate code snippet that can be inserted at line 18 in the following code? 2.3.(Assume that the code is compiled and run with assertions enabled)4.5.1.import java.util.*;6.7.2.8.9.3.public class AssertTest 10.11.4.{ 12.13.5.private HashMap cctld;14.15.6.16.17.7.public AssertTest()18.19.8.{ 20.21.9.cctld = new HashMap();22.23.10.cctld.put(“in”, “India”);24.25.11.cctld.put(“uk”, “United Kingdom”);26.27.12.cctld.put(“au”, “Australia”);28.29.13.// more code...30.31.14.} 32.33.15.// other methods....34.35.16.public String getCountry(String countryCode)36.37.17.{ 38.39.18.// What should be inserted here? 40.41.19.String country =(String)cctld.get(countryCode);42.43.20.return country;44.45.21.} 46.47.22.} A.assert countryCode!= null;
B.assert countryCode!= null : “Country code can not be null”;C.assert cctld!= null : “No country code data is available”;D.assert cctld : “No country code data is available”;10:在下述選項時,沒有構(gòu)成死循環(huán)的程序是
A.int i=100 while(1){ i=i%100+1;if(i>100)break;} B.for(;;);
C.int k=1000;do { ++k;}while(k>=10000);D.int s=36;while(s);--s;11:
1.給出下面的代碼片斷。。下面的哪些陳述為錯誤的? 2.1)public void create(){ 3.2)Vector myVect;4.3)myVect = new Vector();5.4)} A.第二行的聲明不會為變量myVect分配內(nèi)存空間。
B.第二行語句創(chuàng)建一個Vector類對象。
C.第三行語句創(chuàng)建一個Vector類對象。
D.第三行語句為一個Vector類對象分配內(nèi)存空間
12:A class design requires that a member variable should be accessible only by same package, which modifer word should be used?
A.protected B.public C.no modifer D.private 13:
1.Give the following java source fragement: 2.//point x
3.public class Interesting{ 4.//do something 5.}
6.Which statement is correctly Java syntax at point x? A.public class MyClass{//do other thing…} B.static int PI=3.14
C.class MyClass{//do something…} D.none
14:Which fragments are not correct in Java source file?
A.package testpackage;public class Test{//do something...}
B.import java.io.*;package testpackage;public class Test{// do something...}
C.import java.io.*;class Person{// do something...} public class Test{// do something...} D.import java.io.*;import java.awt.*;public class Test{// do something...} 15:以下的C程序代碼片段運行后C和d的值分別是多少
Int a =1,b =2;Int c,d;c =(a&b)&&a;d =(a&&b)&a;
A.0,0 B.0,1 C.1,0 D.1,1 16:
1.What will be the result of executing the following code? 2.3.public static void main(String args[])4.{
5.char digit = 'a';
6.for(int i = 0;i < 10;i++)7.{
8.switch(digit)9.{
10.case 'x' : 11.{ 12.int j = 0;13.System.out.println(j);14.} 15.default : 16.{
17.int j = 100;18.System.out.println(j);19.} 20.} 21.} 22.int i = j;
23.System.out.println(i);24.} 25.26.Choices: A.100 will be printed 11 times.B.The code will not compile because the variable i cannot be declared twice within the main()method.C.The code will not compile because the variable j cannot be declared twice within the switch statement.D.None of these.17:
1.Give this class outline: 2.class Example{ 3.private int x;
4.//rest of class body… 5.}
6.Assuming that x invoked by the code java Example, which statement can made x be directly accessible in main()method of Example.java? A.Change private int x to public int x B.change private int x to static int x C.Change private int x to protected int x D.change private int x to final int x 18:Which are not Java keywords? A.TRUE B.const C.super D.void
19:設(shè)有變量說明語句int a=1,b=0;則執(zhí)行以下程序段的輸出結(jié)果為()。
switch(a){ case 1: switch(b){
case 0:printf(“**0**”);break;case 1:printf(“**1**”);break;}
case 2:printf(“**2**”);break;}
printf(“n”);
A.**0** B.**0****2** C.**0****1****2** D.有語法錯誤
20:軟件生命周期的瀑布模型把軟件項目分為3個階段、8個子階段,以下哪一個是正常的開發(fā)順序?
A.計劃階段、開發(fā)階段、運行階段
B.設(shè)計階段、開發(fā)階段、編碼階段
C.設(shè)計階段、編碼階段、維護(hù)階段
D.計劃階段、編碼階段、測試階段
21:
1.What will happen when you attempt to compile and run the following code? 2.3.class Base 4.5.{ 6.7.int i = 99;8.9.public void amethod()10.11.{
12.13.System.out.println(“Base.amethod()”);14.15.} 16.17.Base()18.19.{
20.21.amethod();22.23.} 24.25.}
26.27.public class Derived extends Base 28.29.{
30.31.int i =-1;32.33.34.35.public static void main(String argv[])36.37.{
38.39.Base b = new Derived();40.41.System.out.println(b.i);42.43.b.amethod();44.45.} 46.47.public void amethod()48.49.{
50.51.System.out.println(“Derived.amethod()”);52.53.} 54.55.}
56.57.Choices: A.Derived.amethod()-1 Derived.amethod()B.Derived.amethod()99 C.Compile time error D.Derived.amethod()簡答題
22:怎樣在復(fù)雜的各種形式的網(wǎng)頁中提取mp3下載的結(jié)構(gòu)化數(shù)據(jù)?
23:編寫一程序,利用RandomAccessFile類將一個文件的全部內(nèi)容追加到另一個文件的末尾。
24:已知abc+cba=1333,其中a,b,c均為一位數(shù),編程求出滿足條件的a,b,c所有組合。
25:servlet的生命周期?
26:Static Inner Class 和 Inner Class的不同,說得越多越好。
27:如果有幾千個session,怎么提高效率。
28:
1.public class Something { 2.void doSomething(){ 3.private String s = "";4.int l = s.length();5.} 6.} 7.有錯嗎? 29:是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用?
30:error和exception有什么區(qū)別?
31:Is Tomcat faster than serving static HTML pages than Apache httpd?