第一篇:中科軟面試題
1tomcat 怎么改變內存大小? 答:
一、使用 catalina.bat 等命令行方式運行的 tomcat1、修改 tomcatbinCatalina.bat 文件。在 %DEBUG_OPTS% 后面添加-Xms256m-Xmx512m保存后,重新以命令行的方式運行 tomcat,即可,然后通過最后面介紹的如何觀察tomcat現有內存情況的方法進行查看是否已經變更成功。
二、使用 系統中的 “服務”,或者開始菜單的可執行程序運行的tomcat。
1、關閉 現在正在運行的tomcat 高版本tomcat配置方法]如果是tomcat 5.5 或者是 5.0.28 之后的版本,在 Java 選項卡中,下方,會有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三個輸入框,在這里即可不用做上面的操作,直接配置內存大小,只需要設置
Inital memory Pool 為 256
Maximum memory Pool 為 512。點擊確定后,重啟tomcat 生效
[低版本tomcat配置方法]在開始菜單中,找到“Apache Tomcat 5.0”,并選擇“Configure Tomcat”,在彈出的對話框窗口中,切換到 Java VM 選項卡,并在 Java Options 輸入框的最前面輸入
-Xms256m-Xmx512m點擊確定后,重啟tomcat 生效
2動態include和靜態include的區別?
答:動態INCLUDE用jsp:include動作實現
3當一個對象被當作參數傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
答:是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
4觸發器分類?每種類別有什么區別?
答:DML 觸發器在 INSERT、UPDATE 和 DELETE 語句上操作,并且有助于在表或視圖中修改數據時強制業務規則,擴展數據完整性。DDL 觸發器在 CREATE、ALTER、DROP 和其他 DDL 語句上操作。它們用于執行管理任務,并強制影響數據庫的業務規則。它們應用于數據庫或服務器中某一類型的所有命令。可以使用相似的 Transact-SQL 語法創建、修改和刪除 DML 觸發器和 DDL 觸發器,它們還具有其他相似的行為。綜上,創建觸發器是DDL,觸發器工作依靠DML。
5刪除表的命令?
答:droptabletablename
6String和StringBuffer區別?
答:JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數據。這個String類提供了數值不可改變的字符串。而這個StringBuffer類提供的字符串進行修改。當你知道字符數據要改變的時候你就可以使用StringBuffer。典型地,你
可以使用StringBuffers來動態構造字符數據。另外,String實現了equals方法,new String(“abc”).equals(new String(“abc”)的結果為true,而StringBuffer沒有實現equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的結果為false。
7java中常見的數據結構有哪些?他們的內部實現原理是什么?
8抽象類和接口的區別?
答:含有abstract修飾符的class即為抽象類,abstract 類不能創建的實例對象。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那么子類也必須定義為abstract類型。
接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認為public abstract類型,接口中的成員變量類型默認為public static final。
下面比較一下兩者的語法區別:
1.抽象類可以有構造方法,接口中不能有構造方法。
2.抽象類中可以有普通成員變量,接口中沒有普通成員變量
3.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。
4.抽象類中的抽象方法的訪問類型可以是public,protected和(默認類型,雖然
eclipse下不報錯,但應該也不行),但接口中的抽象方法只能是public類型的,并且默認即為public abstract類型。
5.抽象類中可以包含靜態方法,接口中不能包含靜態方法
6.抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,并且默認即為public static final類型。
7.一個類可以實現多個接口,但只能繼承一個抽象類。
下面接著再說說兩者在應用上的區別:
接口更多的是在系統架構設計方法發揮作用,主要用于定義模塊之間的通信契約。而抽象類在代碼實現方面發揮作用,可以實現代碼的重用,例如,模板方法設計模式是抽象類的一個典型應用,假設某個項目的所有Servlet類都要用相同的方式進行權限判斷、記錄訪問日志和處理異常,那么就可以定義一個抽象的基類,讓所有的Servlet都繼承這個抽象基類,在抽象基類的service方法中完成權限判斷、記錄訪問日志和處理異常的代碼,在各個子類中只是完成各自的業務邏輯代碼,偽代碼如下:
public abstract class BaseServlet extends HttpServlet{
public final void service(HttpServletRequest request, HttpServletResponse response)throws記錄訪問日志 進行權限判斷
if(具有權限){
}
}protected abstract void doService(HttpServletRequest request, HttpServletResponse response)throws try{} catch(Excetpion e)}{ 記錄異常信息 doService(request,response);IOExcetion,ServletException {
IOExcetion,ServletException;
//注意訪問權限定義成protected,顯得既專業,又嚴謹,因為它是專門給子類用的}
public class MyServlet1 extends BaseServlet
{
protected void doService(HttpServletRequest request, HttpServletResponse response)throws IOExcetion,ServletException
}
父類方法中間的某段代碼不確定,留給子類干,就用模板方法設計模式。{}本Servlet只處理的具體業務邏輯代碼
9interger 和int 區別
答:int是java提供的8種原始數據類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。int的默認值為0,而Integer的默認值為null,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別,則只能使用Integer。在JSP開發中,Integer的默認為null,所以用el表達式在文本框中顯示時,值為空白字符串,而int默認的默認值為0,所以用el表達式在文本框中顯示時,結果為0,所以,int不適合作為web層的表單數據的類型。
在Hibernate中,如果將OID定義為Integer類型,那么Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm映射文件中設置其unsaved-value屬性為0。
另外,Integer提供了多個與整數相關的操作方法,例如,將一個字符串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。
10單利
答:public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance(){
return instance;
}
}
11forword和redirect區別
答:forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取。
12jsp九大內置對象
答:JSP共有以下9個內置的對象:
request 用戶端請求,此請求會包含來自GET/POST請求的參數
response 網頁傳回用戶端的回應
pageContext 網頁的屬性是在這里管理
session 與請求有關的會話期
application servlet 正在執行的內容
out 用來傳送回應的輸出
config servlet的構架部件
page JSP網頁本身
exception 針對錯誤網頁,未捕捉的例外
13給你一個字符串 “welcome to zkr”中間以空格隔開。
輸出“ zkr to welcome ”
public static void main(String[] args){
Stack ss = new Stack();
String str = “ welcome to zkr ”;
String[] strs = str.split(“ ”);
System.out.println(“========>” + strs.length);
for(int i = strs.length-1;i >= 0;i--){
System.out.print(strs[i] + “ ”);
}
}
68、你所知道的集合類都有哪些?主要方法?
最常用的集合類是 List 和 Map。List 的具體實現包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。List 適用于按數值索引訪問元素的情形。
Map 提供了一個更通用的元素存儲方法。Map 集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。
ArrayList/Vector?List
?Collection
HashSet/TreeSet?Set
Propeties?HashTable
?Map
Treemap/HashMap
它們都有增刪改查的方法對于set,大概的方法是add,remove, contains;對于map,大概的方法就是put,remove,contains等,我記住的一些思想就是List類會有get(int index)這樣的方法,因為它可以按順序取元素,而set類中沒有get(int index)這樣的方法。List和set都可以迭代出所有元素,迭代時先要得到一個iterator對象,所以,set和list類都有一個iterator方法,用于返回那個iterator對象。map可以返回三個集合,一個是返回所有的key的集合,另外一個返回的是所有value的集合,再一個返回的key和value組合成的EntrySet對象的集合,map也有get方法,參數是key,返回值是key對應的value。請你寫出5個最常見的runtime exception
答:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException校驗手機號碼
function CheckMobile(mobile)
{
if(mobile.length==0)
{
alert('請輸入手機號碼!');
document.form1.mobile.focus();
return false;
}
if(mobile.length!=11)
{
alert('請輸入有效的手機號碼!');
document.form1.mobile.focus();
return false;
}
var myreg = /^(((13[0-9]{1})|159|153)+d{8})$/;
if(!myreg.test(mobile))
{
alert('請輸入有效的手機號碼!');
document.form1.mobile.focus();
return false;
}
}
12.jsp有哪些動作?作用分別是什么?
(這個問題似乎不重要,不明白為何有此題)
答:JSP共有以下6種基本動作
jsp:include:在頁面被請求的時候引入一個文件。
jsp:useBean:尋找或者實例化一個JavaBean。
jsp:setProperty:設置JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記
6、SERVLET API中forward()與redirect()的區別?
答:前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用
sendRedirect()方法。
第二篇:中科軟java面試題
中科軟: 走去就是上機考試 接著是面試 上機題: 1: 寫一個html文件,包括用戶名,登陸密碼.用戶名是一個電子郵件,格式是里面必須含有@和.底下有一個登陸按鈕,點擊登陸按鈕,用js代碼判斷,判斷電子郵件格式是否符合,若符合就提示“登陸成功”,若不成功,則提示錯誤.2:有一個表,字段有保單號,保單金額 讓你按保單號給保單金額匯總 select sno,sum(smoney)from 表名 group by sno having sum(smoney)>500000;3:給定一個字符串,求出該字符串里哪個字符出現的次數最多
4:給定一個字符串和一個預定的長度,把這個字符串按照這個長度分割成幾部分,重新組合為一個字符串數組
5:讀取一個文件,給定一個字符串,判斷這個字符串在文件中出現的次數
6:隨機產生10個數,并每個數給定一個序號,然后將這10個數按照從小到大的順序輸出來,并帶上序號輸出.面試題: 1.自我介紹
2.數據庫中如何分頁 3.說一下你的項目
4.數據庫中有哪些連接,有什么區別(就是內連接,外連接等待...)5.說說struts 6.做一個項目,有哪些步驟? 需求分析,軟件設計,寫文檔....(這個上網百度一下)7.statement和preparedstatement的區別? package test;public class Count1 {
/**
* @paramargs
*/ staticintcountNum = 0;staticintcountLetter = 0;staticintcountOther = 0;public static void main(String[] args){
// TODO Auto-generated method stub
String str = “sdSAAaazzZ12...,”;
char[] c = str.toCharArray();
for(inti=0;i if(c[i]>='a'&&c[i]<='z'||c[i]<='Z'&&c[i]>='A'){ countLetter++; }else if(c[i]>='0'&&c[i]<='9'){ countNum++; }else{ countOther++; } } System.out.println(“字母:”+countLetter); System.out.println(“數字:”+countNum); System.out.println(“其他:”+countOther); } } /^s*([A-Za-z0-9_-]+(.w+)*@([w-]+.)+w{2,3})s* $/ public static void main(String[] args){ test(“abbcccddddaa”); } public static void test(String str){ intmax_length = 0;String max_str = “";while(str.length()> 0){ int length = str.length();String first = str.substring(0, 1);str = str.replaceAll(first, ”“);if(max_length< lengthstr.length();max_str = first;} } System.out.println(max_length);System.out.println(max_str);} 王華東(40169FEF949C)09:54:20 importjava.io.BufferedReader; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.io.InputStreamReader; importjava.util.Scanner; 郵箱表達式 public class Main { public static void main(String[] args)throws IOException { Scanner input = new Scanner(System.in); System.out.println(”請輸入文件名:“); String fileName = input.next(); BufferedReaderbr = new BufferedReader(new FileInputStream(fileName))); System.out.println(”請輸入要查找的字符串:“); String find = input.next(); long count = 0; String line = br.readLine(); while(null!= line){ count += count(line,find); line = br.readLine(); } System.out.println(”文件“ + fileName + ”中共有“ + count +”個" + find); br.close(); } /** * 在str中查找find,并返回找到的個數 * @paramstr從文件讀入的一行 * @param find 要查找的字符串 * @return str中find的個數 */ private static long count(String str,String find){ long count = 0; intlen = find.length(); int index = 0; for(inti=0;i if((index = str.indexOf(find, i))>-1) count ++; else break; } return count; } } InputStreamReader(new 東軟面試試題匯總 堆和棧那個是對程序員透明的? 答案:棧。請結合具體實例闡述一下面向對象中“多態”的概念。 答案:同一操作用于不同的類的實例,不同的類將進行不同的解釋,最后產生不同的結果,它有兩種: →編譯時多態----通過overload來實現,系統在編譯時,根據傳遞的參數和返回的類型等信息決定實現何種操作 →運行時多態----通過override來實現,根據運行時具體對象的類型決定調用哪個方法。給我面試的人很有親和力,我沒有感到有壓力。 首先是自我介紹;他根據你自己介紹的情況來問你問題,我主要是說得現在正在做的青軟實訓內部管理系統。 你在項目組里主要負責什么?是怎么做的? 主要負責頁面前臺展示,我現在設計頁面框架,用的Struts-tile;把頁面分為4部分,sidebar,header,footer,context;然后把sidebar,header,footer這些每個頁面都要用的寫成一個整體,放在配置文件中,每個頁面都引用他,這樣就不用變了。變得就是context部分。另外在sidebar里面,用javascript來實現導航欄的彈出功能。用什么方法可以檢測一個環行鏈表? 首先可以在data里面初始化一個數據,然后向下循環,可以找到這條數據的話,就是環行鏈表,否則就不是; 但這個鏈表不一定是完全的鏈表,里面可能有分支,該怎么檢測? 設置一個循環,條件設為true,如果可以結束就不是,不能結束里面就有環。那這樣的話怎么讓他跳出循環呢? 我也不知道,那請教一下吧。 你看看如果next引用如果相同的話是不是就是環行鏈表? 對,是 那你想個辦法來實現他吧。 把這個next引用,寫進一個list,以后都把next引用和list里面的內容進行比較,如果有相同的就是環,沒有就不是。 但如果鏈表很大,而你做的是嵌入式項目,有內存溢出,該怎么檢測呢? 呵呵,我想不出來了。1. 2. 自我介紹,(注 自我介紹中的自我經歷可能會成為他的考點) 3. 我在自我介紹中說了我參加過數學建模,他問了我我們建的什么模型,我給他介紹了一下。主要考點是你的思路問題。 4. 單鏈表若最后一個節點指向前面的某個節點,請問怎么檢測出現了環? 主要是考察你對問題有無解決方案,不對也無所謂,最后他一定會把你難倒。怎么也要說上幾句,不說那就over了。 5. Final和finally的區別? 6. Java的垃圾回收機制? 5 兩題應該都會,我就不說了。 1。什么是J2EE,J2SE,J2ME 這個就不用說了吧 2。什么是EJB 也不用說了吧 3。你做過哪些項目,負責該項目的哪個模塊,M、V還是C 我說我做過一個網上花店,負責管理員模塊,然后簡單說了一下這個模塊的各項功能,他讓我說是M、V還是C,我說這個項目的目的之一是讓我門每個人對整個流程都有所鍛煉,所以沒有誰只做M或者V或者C,一個人負責一個模塊,然后做這個模塊的全部。 4。我說我學到STRUTS了,他問我ACTION和ACTIONFORM是什么關系,是一對一嗎,是一個ACTION一個ACTIONFORM嗎,確定嗎? 我說是的,確定一定以及肯定。因為一個ACTION標簽里只有一個NAME屬性(他說這個我知道)。5。學過日語啊,說個句子你翻譯一下吧,@#$%#%$...我也@#$#@%$#%...然后他說“恩,還懂點日語皮毛,學起來應該快一些。” 技術上也就這些了,別的也沒什么了,不知道為什么就問我這些,我準備的那些他一個也沒問著,可能我一開始說我正在學J2EE,把他引向了這個方向,或者是我回答的太快了,時間太緊了。就這些。 東軟面試總結: 1. 問題:棧和隊列的主要區別 答案:棧----------后進先出; 隊列--------先進先出。2. 問題:完全二叉樹的結構 答案:深度為k,有n個節點的二叉樹,當且僅當其每一個節點都與深度 為k的滿二叉樹中編號從1至n的結點一一對應時,稱之為完全二叉樹。 當初面試人員畫了幾個樹讓我辨認誰是完全二叉樹。3. 問題:什么是索引 答案:索引依附于基表,建立索引是加快查詢的有效手段。4. 問題:什么是視圖 答案:視圖是關系數據庫系統提供給用戶以多角度觀察數據庫中數據的重要機制。是從一個或多個基表(或視圖)導出的表,它與基本表不同,是虛表。5. 問題:什么是游標 答案:游標是系統為用戶開設的一個數據緩沖區,存放SQL語句的執行結果,每個游標區都有一個名字。用戶可以通過游標逐一獲取記錄,并賦給主變量,交由主語言進一步處理。6. 問題:對數據庫操作的語句 答案:select,insert,update,delete 7. 問題:數據庫的操作過程 答案:(1)加載驅動程序;(2)建立數據庫連接;(3)向數據庫發送SQL 語句;(4)事務處理;(5)管理連接。 8. 問題:所知道的排序方法的種類 答案:插入,快速,選擇,交換,歸并,基數,希爾等。9. 問題:什么是MVC 答案:這個大家都清楚,可查詢有關資料。 1。首先得問題就是讓我做自我介紹 答 當然就自己的大致情況說就行了,在這個過程中 又讓我分析自己的性格與優缺點。然后讓說明自己的職業規劃。這些都是因自己而定了 2。做過的項目 簡單介紹一下 答:做過的項目在來軟件園之前沒有多少機會 只有課程設計的時候做過一個java聊天室的項目,然后來到軟件園之后做過jsp的產品支持中心的例子,sruts的固定資產管理的例子,還有hibernate 的例子,(可惜我都忘了竟然忘了那個項目的名字了,就是留言板的那個,剛做完竟然忘了)。隨后她又隨便問我關于java聊天室是不是自己編協議實現的,當然沒有。隨后讓我講一個項目,我就講了那個關于struts的項目。因為對方不懂struts,我講也不知道她聽懂了沒有。3。問你幾個c語言的問題,char *p;int i;p++與i++的區別?這個大家都知道就是p++是指向下一個元素,p的移動位置與p指針指向的類型有關,i++是自身增加一。差不多就是這樣說的。 p保存占多少位? 我開始說與它指向的類型有關,然后她提示我說她不是那個意思,然后我說我感覺是在內存中占16位吧?我是這樣說的,其實我也不清楚,c都忘了。 char *p=malloc(100),給p分配了多少個字節的空間?是堆內存還是棧內存? 我回答100個,(但是我忘了是堆還是棧)我認為是堆內存。4。一個程序編譯完成后在內存中是如何存儲的?? 我說這個沒有學過,我把我認為的說了一下,她說她就是隨便問問。5。java有多態性,繼承,什么意思?是如何實現的? (這個我雖然也知道大概 但是好像理解的也不是太深刻,說不太清晰) 答:我就說了前幾天老師利用接口與DAOFactory實現的那個例子,她說那抽象類呢,我說不太上來但是也就我理解的說了點。我又扯上了重載,她就問重載是多態嗎?我說不是(因為我記得不是),但是可以實現多態。說得很亂 7. 最后就是隨便聊了。她問我怎么沒有考研,為什么?一個女生為什么學軟件?然后問我有沒有什么問題,我就問了關于對日外包的事情和關于東軟的一些事情。 1.著裝:是第一項。 2.英語水平: 問:四級539分?答: 恩。 3.數據庫: 問: Sql語句是在sql server 里寫的還是在程序里寫的? 答: 學數據庫的時候,是在sql server里,也在程序里寫。 問:存儲過程有沒有用過 答:在個人網站里,用到過。 4.網絡: 問: 有沒有socket編程的經驗。 答: 在大三做過網絡五子棋。 5.架構: 問 :三層架構:是什么 ? 正確答案:(web服務器,數據庫服務器,應用程序服務器) 6.編程語言: 問: Java學的怎么樣?答:學了一個學期的課程 問:C或C++挑一個你最好的。答 :C++ C++:問:面向對象的特點:解釋一下什么繼承,多態。 答 :我在回答的時候,是通過一個經典的例子說的。 7.你的項目經驗: 問:是用什么開發的 ? 答:asp 8. 日語基礎: 寫一下五十音圖,說一個存在句,說一個判斷句,說一個你學過的最復雜的句子。 首先,面試官對整個試卷的成績做個一個評價。我的編程做了一個 java 和一個 c 語言的。面試官問我這兩門語言那一門更熟悉,我說我是.net 班的,相對來說對 C 語言相對熟悉一些。他接著問我什么時候學的 C 語言,我說大一下學期,他問以后用的多嗎?我說:大二以后就不用了,因為 C 的編程環境太單調了,以后我們就用 C++ 代替了 C語言。接著,面試官就以 VC++ 為切入點問我。問題可以分為以下幾個: 1、讓我談談面向對象是怎樣理解的? 2、談談類、子類的聯系和區別。 3、談談繼承、多態、封裝、抽象、重載、虛函數、抽象類。 4、VC++ 中的 MFC 的理解,對 MFC 的理解程度? 答:我對 MFC 有一定的了解,因為里面的指針應用太過與復雜,我只是對里面的幾個類如:視圖類、文擋類,做了簡單的介紹。接著面試官就給我說學 VC 怎么能不理解 MFC 呢,他大體的介紹了里面的內容,并囑咐我接下來的時間一定要抓緊這方面的學習。 5、數據庫學的怎么樣?學的是什么數據庫? 答:我說學的是關系型的數據庫,以 SQLSERVER 為主。首先,問我對一條記錄有幾種操作方式。我回答是:查詢、插入、刪除、更新。其次、有問了問里面的一些具體關鍵字的應用,例如:having.in.with check option.等等 6、為什么學習.net 而不學習java? 答:我說上個學期,學校開了 C# 對這門語言產生了很濃的興趣,所以四月份報名的時候就選擇的.net 方向。如果是 java 在先的話,我可能就選擇了 java。接著,面試官說大型的項目都是用 java 開發的,要我以后向這方面靠一靠。 7、為什么選擇國內解決方案?對這方面了解多少?對當今軟件的發展有什么看法(外包、國內)? 大體上就問了這么多,首先是面試管不是我想象中的那么嚴肅,感覺就好象金澄老師一樣,讓人感覺就像是自己的大哥在和自己說話,所以整個過程中沒有緊張。 每個公司的面試都各不相同,東軟面試的問題同樣具有一定的深度、廣度。1.final 怎么用? 答:final可以用在定義變量、方法以及類。 final的變量必須要初始化,也可以將初始化的操作推到類的靜態塊中進行,而且這樣的變量不能再被重新賦值,可以將其看成這個類的“常量”了。final的方法不能被所在的類的子類重寫。final的類不能再被繼承了。2.那么,finally怎么用? 答:finally適合try、catch塊配合使用的。finally一般放一些收尾的代碼,也就是說,不管try塊中的代碼是否正常執行,也不管catch塊中的代碼是否工作了,finally中的代碼都要執行。比如,JDBC或是Hibernate中的關閉連接操作,就是放在finally中執行的。3.wait方法和sleep方法的區別? 答:他們都是用來堵塞、掛起當前線程的方法,大體上應該是wait方法可以釋放原先占有的資源,而 sleep方法好像不能...在以前的編寫的代碼中,我幾乎沒有用過控制線程的操作,這部分知識我確實不敢隨便說。 4.Java中,是否有內存泄漏問題? 答:為什么會有“內存泄漏問題”呢,主要是以前的一些編程語言,如C、C++等,因為存在指針變量,而且這些指針是可以進行運算的,所以可能會產生“內存泄漏問題”。對于Java來說,盡管聲稱廢除了指針,但是每個類的實例的引用就是一種“指針”,然而這些引用是不支持運算的,也就不存在內存地址混亂問題,所以應該沒有“內存泄漏問題”。 5.Java虛擬機的垃圾回收機制,是否真的不會有問題? 答:一個類的實例,如果長時間不用了,就可能被虛擬機垃圾回收掉。但是具體的被回收的時間的長短、具體什么時刻能被回收是不確定的。一般情況下,如果虛擬機認為當前可以使用的內存空間不多的時候,就會進行垃圾回收。據我現在的知識,認為,虛擬機的垃圾回收機制應該不會產生問題。6.在平常的代碼編寫的過程中,有沒有測試?一般怎樣進行? 答:我平常寫代碼,也寫一些測試程序,一般是使用JUnit,對編寫的DAO類進行各種功能操作,如保存、刪除、添加等的測試. (他又補充問道:你這是小部分的測試,我指的是“單元測試”) 我平常寫的差不多就是這類的簡單測試了,還沒有寫一個功能強大的、有較大實際使用價值的“單元測試”。 7.你在代碼中,都是怎樣對待異常情況的? 答:在絕大多數情況下,我都回知道哪些代碼可能會拋出異常以及會拋出什么樣的異常。所以我也會針對不同類型方面的異常區分對待。我一般會分成幾類情況:一類是服務器崩潰等情況,是最嚴重的異常了,沒有什么可以挽救的余地,返回給用戶“服務器維護中,暫時無法使用”;一類是數據庫操作失敗等情況,比如JDBC連接數據庫失敗、Hibernate正常刪除數據失敗等,是屬于意外情況,嚴重程度稍微低一些,返回給用戶“剛才由于網路不暢,導致操作失敗,請重新操作”,同時,需要回滾的及時回滾;再一類在實現有所準備的、業務操作異常的情況,比如登錄密碼錯誤、新用戶注冊重名現象等等,這些異常都是在意料之中、有所準備的。此時可以返回相關的提示,嚴重程度相對比較的低。8.說一下數據庫表設置多個外鍵的事情 答:我以前設計的數據庫表,還沒用多個外鍵的情況.從外鍵的定義上說,一個表設置多個外鍵是完全可以的,外鍵對應著相關表的主鍵,內容只能是對應的主鍵的值。如果對應的主鍵發生變化,那么就要按照當時定義外鍵時制定的規則對外鍵所在的紀錄條進行保留、刪除或是更新操作。9.談談對CMM的認識 答:CMM是一種開發的模式,正好我們做的一個項目就是按照CMM3的基本要求做的。因為以前的時候都是采用類似“快速”開發一樣的方式,還快就會開始編碼,但是CMM3要求每一步都要事先有一份完整的文檔,所以一開始,對這種整天只寫文檔,不寫代碼的模式不太適應。隨著項目的不斷進行,才覺著CMM3的這種開發模式有許多的優點和好處。每做一步都有上一步的文檔的支持,保證了工作的一致性和完整性。同時,因為是在統一的文檔進行的工作,較容易了解的項目的進展情況,便于對項目的監控。10.別人的進度拖延了,影響到了你的進度,這種事情在實際情況下經常有,你怎么處理? 答:我會直接找到這位(些)同事,了解情況,看看我是否能幫得上忙。如果幫不上,問一下什么時候能夠結束,調整一下自己的工作安排,先做其它的一些和他們的進度聯系不大的東西。都是自己項目組的同事,應該很好協調。 (如果是,別的項目組的進度影響到你呢?) 如果是別的組的人,自己就不好直接找人家,我會和項目組長說。如果事情緊急,讓項目組長帶著我,我們一起與那個項目組進行溝通。......通過東軟面試官所提的這些問題可以看出,他們是從知識、能力和意識三個方面對面試者進行考查的。1.知識類問題,比如final和finally、wait和sleep等問題,考察的就是基礎知識,是什么就是什么,沒有可以解釋的余地。對于這類的問題,只有靠自己的認真學習,才能答好。 2.能力類問題,比如內存泄露、垃圾回收、對待異常等問題,能回答的非常完美當然很好,但我們現在的所學能回答準確不好辦。所以我認為,這類問題不能簡單的回答“是”“不是”“能”“不能”,應該把思考的思路表現給面試官,只要認可了我的思路,也就基本的認可了這方面的能力了。 3.意識類問題,比如對CMM的認識、工作協調等問題,主要看對某些方面認識有多深,我認為能結合著自己的經歷談,再加上闡述合理,較容易得到面試官的認可。 SSH,java基礎,oracle 線程、Socket、Servlet、Jsp等j2SE、javaWeb 談JAVA的多態,說一下STRUTS的基本應用 筆試 專業知識 java 數據庫基礎知識 面試 java理論 左鏈接右鏈接,decode的用法,sendredirect和forward的區別(這個我沒回答上來,汗),servlet的生命周期,doget和dopost的區別 如何解析 xml int 與integer的區別 javascript如何debug collectio和collections map jsp鏈接數據庫 sql語句大全 cooki和session final finally finallize run Runnable 垃圾回收機制 幫我翻譯一段話: 要運行已經生成的程序,可以通過A或者能力超強的B程序員自己編程實現,代碼由A引擎解析。運行的每個過程是用WEB服務描述語言文檔表示,它的消息由簡單對象訪問協議在網上傳送。要查找可用WEB服務的過程可以是有通用的描述和發現 中科軟筆試題 1、談談你對測試的理解 2、你的長期的人生規劃 3、你對加班的看法?你曾經長期加班? 4、你心目中理想的公司怎么樣?理想的工作環境?理想的同事關系? 5、你認為激勵你努力工作的因素都有那些? 6、假設你發現別人不誠實(與工作有關),你會怎么辦? 7、你的最大的缺點是什么?有什么專業特長?喜歡體育運動嗎? 8、什么是管理信息系統?你認為管理信息系統的重點是什么? 9、什么是數據庫?什么是關系型數據庫?描述什么是主 10、假如你是質檢員,怎么對自行車進行檢查?若要保證質量必須要檢查的三個部件,你認為是什么? 11、給出一段文字描述,畫出ER 圖 12、根據程序流程圖,使用最少的路徑,覆蓋最多的語句 數據庫題(給出了兩個表成績表和課程表) 1、說明主鍵、外鍵的作用,索引的好處與不足? 2、創建表 3、查詢成績小于60分的學生姓名和學號 4、查詢成績小于60分的學生姓名和課程名 5、查詢平均成績并排序 面試題: 1、自我介紹并描述你認為做得成功的兩三個項目 2、你三年的職業規劃 3、描述TD、QTP、工具的測試流程 4、描述登陸腳本的錄制過程 5、LR腳本的組成6、缺陷報告的組成要素? 7、對缺陷怎么進行分析解決? 8、測試從哪個階段開始介入? 9、項目測試的基本流程? 10、著重描述你在項目中擔任的職責 筆試題 1.談談你對測試的理解 2.你三年的職業規劃 3.你對加班的看法?是否可以加班? 4.你心目中理想的公司怎么樣?理想的工作環境?理想的同事關系? 5.你覺得這筆試答的如何?優勢在哪?劣勢在哪? 6.如果初面沒成功,你怎么說服我給你復試機會? 7.你認為激勵你努力工作的因素都有哪些? 8.你的最大的優點是什么?缺點是什么?有什么專業特長?愛好是什么? 9.給你輛自行車,你認為最需要檢查的是哪些地方?為什么?若要保證質量必須要檢查三個部件,是什么?為什么? 技術題 數據庫 1.咖啡廳,咖啡不同種類不同價格,有大杯小杯,食物不同種類不同價格,消費時間令算錢,結賬可以用會員卡,會員卡根據等級不同打折不同,畫出E-R圖 2.給出兩個表,成績表和課程表 說明主鍵、外鍵的作用,索引的好處和不足? 創建表 查詢成績小于60分的學生姓名和學號 查詢成績小于60分的學生姓名和課程名 查詢平均成績并排序 3.兩個表設計的有哪些缺陷,應該如何改動 程序題 1.給段代碼,用白盒測試方法設計用例覆蓋 2.給段JAVA代碼,類的互相調用,寫出顯示結果,并說明過程,主要考察的是類以及私有變量的生命周期 3.寫出一個類,調用另一個類的函數 測試題 1.什么是信息管理系統?最重要的是哪部分? 2.什么是數據庫?是什么關系型數據庫?描述主鍵、外鍵 3.TD中BUG處理過程 4.測試計劃的內容 5.一個有廣告的花杯子,盡可能多的設計測試用例 6.你會使用的測試工具 7.測試題太多,具體想不起來了,總之把老師總結的測試技術題全背下來就成了,考的也就是那些東西 初面 1.自我介紹 2.談談你做過的一個項目,擔當什么職責 3.談談你做過項目的一個模塊,具體都設計了哪些用例 4.使用QTP、Loadrunner多長時間?分別敘述使用過程 5.給出一個QTP的場景,問怎么設計,問的根本聽不懂,所以也沒記住 6.Loadrunner中都可以修改插入哪些東西?檢查點是插在事務的里面還是外面?集合點是插在事務的前面還是后面? 7.是否參與過性能分析,都需要看哪些地方 8.QTP適合哪些系統?不適合哪些系統 9.你為什么離職 10.你的三年職業規劃是什么 11.是否可以加班 12.原公司有多少人,測試團隊有多少人,開發團隊有多少人 復試(全是結合具體工作談的) 1.談談以前的工作 2.測試計劃都怎么寫的3.講講QTP和LR的如何使用 4.如何回歸的5.介紹一下TD的流程 6.結合你做過的一個系統的一個模塊,設計用例 7.LR并發用戶是如何確定的8.LR的分析需要看哪些方面 9.如何寫測試分析報告 10.什么是冰凍測試 11.是否統招 12.三年職業規劃 13.用過哪些管理工具,如何使用第三篇:東軟面試題匯總
第四篇:中軟面試題
第五篇:中科軟 軟件測試工程師筆試題