華為技術有限公司內部JAVA面試題及面試流程

TopEng BOSS3.0 渠道合作伙伴委托測試項目

1.java中什么是類,什么是接口?

答:Java程序的基本單位是類,類是對象的抽象,對象是類的實例,或者說對象是類定義的的數據類型的變量。你建立類之后,就可用它來建立許多你需要的對象。

Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。

接口的兩種含義:一,Java接口,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特征集合,是一種邏輯上的抽象。前者叫做“Java接口”,后者叫做“接口”。

2.java中可不可以多重繼承?

答:java 不支持多重繼承,要想實現多重繼承可以使用接口,接口能變相的實現多重繼承。

3.java中的static是怎么回事?

答:static是靜態,如果加載方法前就是一個靜態方法。可以直接加類名+方法名引用。

4.java中垃圾回收是怎么回事?

答:java編程語言不為程序員提供操作符或庫函數來釋放對象的,因為java運行環境會自動收回那些沒有引用與之相連的對象所占的內存。這種內存回收的過程就叫 垃圾回收。垃圾回收器自動定期執行。任何時候你都可以手動通過 system.gc() 調用垃圾回收器。

5.oracle中,什么是視圖?

答:視圖是存儲在數據字典里的一條select語句,是基于一個表或多個表或視圖的邏輯表,本身不包含數據,通過它可以對表里面的數據進行查詢和修改。

6.你對那個數據庫比較熟悉?只是會用啊還是熟悉?

答:根據個人情況回答。

7.Eclipse熟悉不熟悉?其中都有那些視圖?

答:Eclipse 工作臺由幾個稱為 視圖(view) 的窗格組成,比如左上角的 Navigator 視圖。窗格的集合稱為 透視圖(perspective)。默認的透視圖是 Resource 透視圖,它是一個基本的通用視圖集,用于管理項目以及查看和編輯項目中的文件。

8.都是根據什么來寫用例?

答:咱公司都是根據需求直接測試測試用例,華為是根據測試方案來寫測試用例。

9.熟悉UNIX和LINUX嗎?說一下熟悉的命令

答:列舉幾個常用的命令:vi ls vmstat tail kill find chmod cp cat wc

10.國稅項目的流程是什么 ?

11.熟悉哪些Rational工具?

答:根據個人情況回答。

12.平時的項目所使用什么服務器,使用什么架構平臺?對這些服務器以及架構平臺是否了解或者熟悉

CCBS海外BOSS版本委托項目

1.ORACLE:表存儲命令,左連接、右連接

2.JAVA:類裝載器?

3.UNIX:ls命令用途?常用的參數?各參數的含義?

答:ls:功能:顯示目錄中的內容

參數及含義:a:列出目錄中所有文件

d:列出所有子目錄

i:列出長格式

4.UNIX:什么是管道?

答:管道符號"|",可以把一個命令的標準輸出連接到另一個命令的標準輸入。例如,利用管道把ls和wc兩個命令連接到一起,可以得到指定目錄下的文件數量。

ls /usr | wc -w

重上述命令的執行效果看,可以把組合命令分解為以下兩個命令

ls /usr > fname;wc -w < fname

5.測試工具的使用?

答:功能測試和性能測試采用的是Robot,缺陷管理工具用的ClearQuest,測試用例管理用的是TestMamager。

6.使用過多少測試用例?發現的缺陷有多少?

答:根據個人情況回答。

7.有沒有與開發人員發生過沖突?怎么解決的?

答:根據個人情況回答。

8.自學能力怎么樣?平時是怎樣自學的?

答:根據個人情況回答。

9.JAVA:一個對象的生存周期 對象的創建,對象的使用,對象的清除

Java對象是通過構造函數來創建的,在這一過程中,該構造函數鏈中的所有構造函數也都會被自動調用。默認情況下,調用類的構造函數時,Java會把變量初始化成確定的值:所有的對象被設置成null,整數變量(byte、short、int、long)設置成0,float和double變量設置成0.0,邏輯值設置成false。所以用new關鍵字來新建一個對象的時間開銷是很大的。

Java語言的一個優勢,就是Java程序員勿需再像C/C++程序員那樣,顯式地釋放對象,而由稱為垃圾收集器(Garbage Collector)的自動內存管理系統,定時或在內存凸現出不足時,自動回收垃圾對象所占的內存。凡事有利總也有弊,這雖然為Java程序設計者提供了極大的方便,但同時它也帶來了較大的性能開銷。這種開銷包括兩方面,首先是對象管理開銷,GC為了能夠正確釋放對象,它必須監控每一個對象的運行狀態,包括對象的申請、引用、被引用、賦值等。其次,在GC開始回收“垃圾”對象時,系統會暫停應用程序的執行,而獨自占用CPU。因此,如果要改善應用程序的性能,一方面應盡量減少創建新對象的次數;同時,還應盡量減少創建和清除的時間,而這些均可以通過對象池技術來實現。

10.C語言:指針數組和數組指針的定義

11.SQL:清空表的方式

答:1)Delete刪除記錄并不能釋放Oracle里被占用的數據塊表空間,它只能把被刪除的數據塊標記為unused.

2)如果確實要刪除一個表的全部內容可以用truncate,它可以釋放占用的數據塊表空間。

12.CRACLE:oracle的連接方式

13.黑盒測試:等價類劃分、邊界值分析、錯誤推測、因果分析

14.測試環境如何搭建?根據測試需求,盡可能模擬實際的運行環境。

15.單元測試和系統測試的區別?

答:單元測試是以屬于白盒測試,系統測試屬于黑盒測試。單元測試一般由開發人員執行,編寫代碼測試程序邏輯分支;系統測試一般由開發人員執行,對軟件系統進行全面的測試。

16.PCLint的操作方法以及主要檢查的問題?

17.是否使用過Oracle數據庫,和對數據庫的操作?

18.使用過Linux環境?

19.談談你對已經做過的華為項目的認識(清欠系統)

20.項目中發現多少缺陷,有沒有印象比較深刻的(想盡辦法來設置測試環境才得以發現的BUG)

21.什么是AIX

AIX(Advanced Interactive eXecutive)是IBM開發的一套UNIX操作系統。它符合Open group的UNIX 98行業標準(The Open Group UNIX 98 Base Brand),通過全面集成對32-位和64-位應用的并行運行支持,為這些應用提供了全面的可擴展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服務器和大型并行超級計算機上運行。

22.AIX中修改密碼的命令

答:passwd

23.AIX中在當前目錄下查找文件怎樣做

答:find

24.AIX中怎樣查看進程,該命令的參數是否熟悉

答:ps

25.aix中怎樣設置文件的權限

1.答:chmod

26.vi編輯器中有幾種模式,怎樣在vi中刪除字符

2.答:vi有兩種模式:輸入模式和指令模式,使用[Esc]鍵可以在輸入模式和指令模式之間切換。

x:刪除字符命令,即刪除光標所在字符。

dw:刪除文字命令,即刪除光標處的文字。

dd:刪除行命令,即刪除光標所在的行。

d:刪除到行末端,即刪除從光標所在位置到行末端的所有文本。

27.vi中怎樣進行插入操作,有幾種,并說明區別。

答:i:這是一個輸入命令,即從光標所在位置前面開始插入文字,光標后的文字隨新增文字向向移動。 如果是一個空白文檔,文字將會輸入在文檔的左上角。

I:在行命令開始處的輸入模式,即在當前行的開始處輸入文字。與Word中的按下鍵后輸入文字類似。

a:這是一個新增命令,即從光標所在位置后面開始新增文字,光標后的資料隨新增文字向后移動。

A: 這是一個新增到行命令的操作,即從光標所在行最后面的地方開始新增文字。這與Word中的按下鍵后輸入文字類似。

28.vi中怎樣獲取變量

29.是否有Java基礎,Java中的一個類的生命周期

30.存儲過程和PL/SQL函數的區別

31.Oracle中用pl/sql寫的存儲過程和java寫的存儲過程有啥區別

pl/sql寫的存儲過程 執行效率快,java寫的還要編譯然后在轉換成oracle存儲過程腳本。

筆試題目:

1.unix中創建一個新文件的命令:touch.vi.

2.unix中全屏編輯命令是:vi,切換命令:[ESC]

3.unix中查看聯機幫助命令:man.

4.查看進程的命令top/vmstat禁止進程的命令:tskill.

5.loadrunner按照那些類別來采集數據

6.性能測試需要關注那些方面(網絡、硬件配置、服務器性能、客戶端性能)

7.軟件測試是一個利用_________及_______的過程

8.測試用例分為哪幾部分:測試用例ID號、用例運行環境、輸入條件、輸入數據、預期結果、備注等.

9.測試執行的前提準備工作: 1)系統測試用例編寫完畢,內部評審和外部評審通過。

2)測試環境搭建完畢。

3)開發工作完畢。

4)代碼review通過。

10.根據什么來編寫測試用例?測試方案。

13.java面向對象的特征:封裝、繼承、多態。

14.3>=a<100,用邊界值方法測試要考慮到哪些數據(2、3、4、99、100、101)

15.黑盒測試有哪些方法(邊界值分析、等價類劃分、因果圖等)

16 .heap和stack的區別?

stack: 先進后出,存放局部變量和函數調用參數!

heap: 沒有先后順序,程序運行時動態申請,如new 和malloc申請的內存就在堆上

17.輸入n個數然后從小到大排列出來(c++)

18.編寫一個調用內存的程序將內存打印出來(c++)

19.typedef這個關鍵字怎么用(c++)

20: EJB 是基于哪些技術實現的?并說出 SessionBean 和 EntityBean 的區別, StatefulBean 和 StatelessBean 的區別。

答: EJB 包括 Session Bean 、 Entity Bean 、 Message Driven Bean ,基于 JNDI 、 RMI 、 JAT 等技術實現。

SessionBean 在 J2EE 應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調用其他 EJB 組件。 EntityBean 被用來代表應用系統中用到的數據。

對于客戶機, SessionBean 是一種非持久性對象,它實現某些在服務器上運行的業務邏輯。

對于客戶機, EntityBean 是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現有企業應用程序實現的實體。

Session Bean 還可以再細分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean 都可以將系統邏輯放在 method 之中執行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體。 Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候, EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執行這個 method 。換言之,很可能數個使用者在執行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執行。從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優勢卻在于他可以維持使用者的狀態。

21.名詞解釋:

Web容器: 給處于其中的應用程序組件( JSP , SERVLET )提供一個環境,使 JSP,SERVLET 直接更容器中的環境變量接 ** 互,不必關注其它系統問題。主要有 WEB 服務器來實現。例如: TOMCAT,WEBLOGIC,WEBSPHERE 等。該容器提供的接口嚴格遵守 J2EE 規范中的 WEB APPLICATION 標準。我們把遵守以上標準的 WEB 服務器就叫做 J2EE 中的 WEB 容器。

EJB容器:Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件 EJB 各種管理功能。只要滿足 J2EE 規范的 EJB 放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理

JMS :( Java Message Service ) JAVA 消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。

JTA:( Java Transaction API ) JAVA 事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。

JAF:( Java Action FrameWork ) JAVA 安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。

RMI/IIOP: ( Remote Method Invocation /internet 對象請求中介協議)他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規范才能在異構的系統之間進行通信。 RMI 是 JAVA 特有的。

22.應用服務器與web services的區別

23.EJB容器中,sessionbean的作用

Java Bean 是可復用的組件,對 Java Bean 并沒有嚴格的規范,理論上講,任何一個 Java 類都可以是一個 Bean 。但通常情況下,由于 Java Bean 是被容器所創建(如 Tomcat )的,所以 Java Bean 應具有一個無參的構造器,另外,通常 Java Bean 還要實現 Serializable 接口用于實現 Bean 的持久性。 Java Bean 實際上相當于微軟 COM 模型中的本地進程內 COM 組件,它是不能被跨進程訪問的。 Enterprise Java Bean 相當于 DCOM ,即分布式組件。它是基于 Java 的遠程方法調用( RMI )技術的,所以 EJB 可以被遠程訪問(跨進程、跨計算機)。但 EJB 必須被布署在諸如 Webspere 、 WebLogic 這樣的容器中, EJB 客戶從不直接訪問真正的 EJB 組件,而是通過其容器訪問。 EJB 容器是 EJB 組件的代理, EJB 組件由容器所創建和管理。客戶通過容器來訪問真正的 EJB 組件。

EJB 包括( SessionBean,EntityBean )說出他們的生命周期,及如何管理事務的?

SessionBean : Stateless Session Bean 的生命周期是由容器決定的,當客戶機發出請求要建立一個 Bean 的實例時, EJB 容器不一定要創建一個新的 Bean 的實例供客戶機調用,而是隨便找一個現有的實例提供給客戶機。當客戶機第一次調用一個 Stateful Session Bean 時,容器必須立即在服務器中創建一個新的 Bean 實例,并關聯到客戶機上,以后此客戶機調用 Stateful Session Bean 的方法時容器會把調用分派到與此客戶機相關聯的 Bean 實例。

EntityBean : Entity Beans 能存活相對較長的時間,并且狀態是持續的。只要數據庫中的數據存在, Entity beans 就一直存活。而不是按照應用程序或者服務進程來說的。即使 EJB 容器崩潰了, Entity beans 也是存活的。 Entity Beans 生命周期能夠被容器或者 Beans 自己管理。

EJB 通過以下技術管理實務:對象管理組織( OMG )的對象實務服務( OTS ), Sun Microsystems 的 Transaction Service ( JTS )、 Java Transaction API ( JTA ),開發組( X/Open )的 XA 接口。

24.java修飾符:public protected friendly private 。

面試題目:

1.做煙草項目時,公司用了哪些中間件?

2.對unix系統熟悉么?

3.中間件項目的流程,如何測試的?

4.度量庫項目具體是做什么的?

5.華為的項目具體是怎么做的?

6.有沒有用自動化工具錄制過腳本,具體做過哪些工作?

7.做過性能測試么?

8.刪除數據庫中某表的數據有哪兩種方法?

9.對數據庫中的索引熟悉么,索引作用是什么,索引是建一個好,還是越多越好?

10.華為第三方測試項目,這個是如何測試的?

11.國稅項目中的分包任務單是怎么回事?

12.有沒有實際開發過java?

13.什么是執行測試和測試執行,測試執行的前提和準備是什么?

14.J2ee三層架構

1、說幾個簡單的AIX的命令

如:復制命令CP,重命名MV,查看文件ls 編輯命令 vi 等等

2、對ORACLE的掌握程度如何。簡單的數據庫操作如何?

3、說一下基本測試流程

需求階段一般進行測試計劃的編寫

設計階段一般進行測試策略、測試方案的編寫

編碼階段一般進行測試用例的編寫

4、說一下你負責的BOSS系統的模塊,測試人員數多少?

考察對業務的了解程度

5、說一下你對BOSS系統其他業務的了解?

考察對業務的了解能力

6、對后臺測試了解多少?

7、有沒有做過開發項目?

1.多態性

是指允許不同類的對象對同一消息作出響應

2.抽象性的特征

抽象 繼承 封裝 多態

3.游標的使用

它有時用來描述一個記錄集,有時用來描述當前記錄集中某一條記錄的指針,它主要用來建立一個關系數據庫中行/列關系的一種SQL可利用的訪問格式

4.對MFC的了解

MFC應用程序模型歷經多年以有了相當大的發展。有一個時期,它只是個使用應用程序對象和主窗口對象的簡單模型。在這個模型中,應用程序的數據作為成員 變量保持在框架窗口類中,在框架窗口的客戶區中,該數據被提交顯示器。隨著MFC2。0的問世,一種應用程序結構的新方式----MFC文檔/視結構出現 了。在這種結構中,CFrameWnd繁重的任務被委派給幾個不同類,實現了數據存儲和顯示的分離。

5.虛函數的使用及作用

那些被Vitual關健字修飾的成員函數,就是虛函數。虛函數的作用,用專業的術語來解釋就是實現多態(Polymorphism),多態性是將接口歸與實現進行分離;用形象的語言來解釋就是實現心共同的方法,但因個體差異而采用不同的策略

6.Visual Studio 2005工具的使用

我用的是VC開發工具,其它的還有VB、C#、J#等

7.代碼收集工具 ClearCase CVS VSS

8.軟件測試過程中需要寫什么文檔,有什么人負責

測試方案 測試負責人

測試計劃 測試負責人

測試用例 測試工程師

測試報告 測試負責人(每個測試工程師應該做好自己測試部分的測試小結)

9.目前應用最好的Oracle是什么

1.對Oracle數據庫熟悉嗎?

2.SQL語句刪除數據庫中的一條記錄,刪除表中的所有記錄,增加一個字段?

Delete from 表名 where 刪除條件

Delete from 表名

Alter table 表名 ADD 字段名 數據類型(長度)

3.數據庫怎么備份?

4.數據庫游標是什么?

可以理解為指向表的數據指針。

5.WebLogic WebSphere 用過嗎?熟悉嗎?你們一般用什么應用服務器?

6.用過哪些中間件產品?

7.unix命令熟悉嗎? 查看內存使用 進程的是哪個命令? tar命令怎么用?

查看內存 進程:top

tar命格式:tar cvf aa.tar aa

8.比較系統的說一下ENIP這個項目?

ENIP CORE(電信業務開發平臺)的一部分, 主要是作了一個IDL編輯器,屬于Eclipse插件,實現IDL的語法解析和語義分析,在實現上參考java編輯器

9.作測試,工作一般是怎么作的?工作流程

工作要按照流程來,我們這邊是根據需求和詳細設計寫測試用例(有問題溝通交流)—用例評審—測試執行,在華為那邊我們不作前邊的測試需求分析和方案設計,根據華為的測試方案寫出測試用例—用例評審—測試執行

10.測試中有哪些交互性的工作,都是怎么作的?

a)問題的溝通交流,有問題有溝通有記錄

b)與合作方的互動:及時反饋進度和項目中遇到的問題

11.工作中和同事有沒有過沖突?

沒有,提單時,有時候問題我們定位不了,就附上定位信息,不定位.開發的不答應,這時候只能想辦法定位了,避免推來推去引起沖突.

12. 與華為合作的幾個項目介紹一下,規模都有多大?

從投入人力和時間的角度說了一下規模

什么是CRM?

CRM(Customer Relationship Management),即客戶關系管理。這個概念最初由Gartner Group提出來,而在最近開始在企業電子商務中流行。CRM的主要含義就是通過對客戶詳細資料的深入分析,來提高客戶滿意程度,從而提高企業的競爭力的一種手段,它主要包含以下幾個主要方面(簡稱7P):

客戶概況分析(Profiling)包括客戶的層次、風險、愛好、習慣等;

客戶忠誠度分析(Persistency)指客戶對某個產品或商業機構的忠實程度、持久性、變動情況等;

客戶利潤分析(Profitability)指不同客戶所消費的產品的邊緣利潤、總利潤額、凈利潤等;

客戶性能分析(Performance)指不同客戶所消費的產品按種類、渠道、銷售地點等指標劃分的銷售額;

客戶未來分析(Prospecting)包括客戶數量、類別等情況的未來發展趨勢、爭取客戶的手段等;

客戶產品分析(Product)包括產品設計、關聯性、供應鏈等;

客戶促銷分析(Promotion)包括廣告、宣傳等促銷活動的管理。

學習Java的同學注意了!!!
學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群346942462,我們一起學Java!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,769評論 18 399
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,839評論 0 11
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應用。 當JAVA程序違反了JA...
    八爺君閱讀 4,673評論 1 114
  • 1、面向對象的特征有哪些方面 1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標...
    michaelgong閱讀 852評論 0 1
  • http://blog.csdn.net/u011277123/article/details/535792091...
    魚仔_1625閱讀 1,065評論 0 0