大概問了項(xiàng)目
1.要求測(cè)試牛客在線面試的右邊視頻框
2.對(duì)問題三每個(gè)功能點(diǎn)做自動(dòng)化測(cè)試
3.項(xiàng)目怎么測(cè)試?
4.主要使用黑盒測(cè)試和白盒測(cè)試進(jìn)行測(cè)試:
白盒測(cè)試部分:主要對(duì)代碼進(jìn)行單元測(cè)試和集成測(cè)試,測(cè)試每個(gè)功能模塊的編寫是否正確
黑盒測(cè)試部分:一些功能測(cè)試,如表單的測(cè)試,根據(jù)需求,對(duì)表單輸入不同的值,測(cè)試預(yù)期結(jié)果;鏈接的測(cè)試;
非功能性測(cè)試:使用不同版本的瀏覽器打開當(dāng)前管理系統(tǒng)均可進(jìn)行登錄,終端只可在安卓設(shè)備,如平板,手機(jī)上進(jìn)行測(cè)試
5.web測(cè)試和app測(cè)試的例子
6.手寫快排、多線程
7.軟件測(cè)試的方法(黑盒測(cè)試方法:等價(jià)類,邊界值,錯(cuò)誤推斷,決策表,窮舉)
舉例闡述軟件測(cè)試方法的使用(給定輸入框,限定輸入字符串和數(shù)字不限制長度,設(shè)計(jì)測(cè)試用例,使用等價(jià)類方法)
抽象類和接口的區(qū)別
8.正交試驗(yàn)法,使用場(chǎng)景是什么
實(shí)際的項(xiàng)目中,輸入條件的因素很多,而且每個(gè)因素不能用“是”或“否”來回答,每個(gè)因素可能又有多個(gè)選項(xiàng),這樣測(cè)試組合會(huì)變得很多,而導(dǎo)致了極大的工作量,這時(shí)可以使用正交法。
9.簡述常用的Bug管理或者用例管理工具,并且描述其中一個(gè)工作流程
知道有bugzilla,bugfree等
http://www.docin.com/p-693585620.html
wiki做測(cè)試用例的管理
10.列舉出你熟悉的自動(dòng)化工具,并說明其實(shí)現(xiàn)原理
soapui的介紹:http://p.primeton.com/articles/53c641c5e138232cbd000011
11.自動(dòng)化測(cè)試的使用場(chǎng)景
項(xiàng)目開發(fā)周期較長、測(cè)試較為頻繁、手工測(cè)試無法勝任、人力財(cái)力資源充足
12.公有繼承、保護(hù)集成、私有繼承然后分析下區(qū)別
13.索引的分類和原理這些。
索引分為聚簇索引和非聚簇索引,InnoDB使用B+樹實(shí)現(xiàn)聚簇索引,MyIsam使用非聚簇索引。
B+樹所有的信息都存在葉子節(jié)點(diǎn)中,B-樹所有信息存在每個(gè)節(jié)點(diǎn)中,可能在非葉子節(jié)點(diǎn)就返回一個(gè)結(jié)果。
http://www.imooc.com/article/17292
在10w個(gè)數(shù)據(jù)中找到最大的10%的數(shù)、
二叉樹上兩個(gè)點(diǎn)的最近公共父節(jié)點(diǎn)的求法,然后還給了一張紙讓直接寫一下二分法進(jìn)行排序的代碼。
1.鏈表的定義
2.怎么實(shí)現(xiàn)鏈表翻轉(zhuǎn)
3.怎么判斷鏈表是否有環(huán)
4.二叉平衡樹,怎么用一維數(shù)組存儲(chǔ)
5.講講jvm分區(qū)
6.講講jvm gc
7.怎么求數(shù)組的最大子序列和
8.final關(guān)鍵字4種用法
用來修飾數(shù)據(jù),包括成員變量和局部變量,該變量只能被賦值一次且它的值無法被改變。對(duì)于成員變量來講,我們必須在聲明時(shí)或者構(gòu)造方法中對(duì)它賦值;
用來修飾方法參數(shù),表示在變量的生存期中它的值不能被改變;
修飾方法,表示該方法無法被重寫;
修飾類,表示該類無法被繼承。
9.sleep用法
10.await關(guān)鍵字
11.線程池
12.spring ioc,aop以及其優(yōu)點(diǎn)
13.棧和堆的定義
鏈表,判斷是否有環(huán),反轉(zhuǎn)、鏈表去重,合并鏈表,樹,二叉樹,平衡樹,遍歷、堆和棧
排序,冒泡,歸并,穩(wěn)定性
final的四種情景
jvm
gc的Gengerational collector
Thread Pool
Spring
Servlet
1、簡歷上的項(xiàng)目是怎么來的?是興趣還是接的?
2、項(xiàng)目里面用到了那些框架與技術(shù),簡述一下。都是自己做的么?
3、你常用的數(shù)據(jù)結(jié)構(gòu)有哪些?
HaspMap\ArrayList
4、HashMap是如何實(shí)現(xiàn)的? 使用除留余數(shù)法和鏈地址法實(shí)現(xiàn)
5、進(jìn)程和線程的區(qū)別?
進(jìn)程是資源分配和調(diào)度的基本單位,一個(gè)進(jìn)程可以包含多個(gè)線程,每個(gè)進(jìn)程有其私有的內(nèi)存和資源
線程是處理機(jī)調(diào)度的基本單位,可共享進(jìn)程的全部資源
6、如何實(shí)現(xiàn)線程同步?
1、介紹一下你認(rèn)為最突出的項(xiàng)目。
2、項(xiàng)目里用到的技術(shù),為什么用這個(gè)技術(shù)。
3、講述一下HTTP的原理
計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則
4、HashMap是怎么實(shí)現(xiàn)的?
5、設(shè)置負(fù)載因子的目的是什么?
6、如何實(shí)現(xiàn)線程同步?
7、HashMap如何實(shí)現(xiàn)線程安全?
8、如何讓HashMap保證在多線程寫數(shù)據(jù)的同時(shí),仍然可以被其他線程讀數(shù)據(jù)?怎么做?
9、最后一個(gè)代碼題:實(shí)現(xiàn)鏈表反轉(zhuǎn)。
3.數(shù)據(jù)庫的索引分為哪幾種,特點(diǎn)是什么。
4.算法:數(shù)組中找出最大的n個(gè)元素,怎么做?
堆排序,小根堆
5.二叉樹:二叉樹鏡像反轉(zhuǎn)。
- List、HashTable、Dictionary用過嗎?
7.GC,解釋原理。
? 介紹ConcurrentHashMap實(shí)現(xiàn)原理 安全高效的Map
? ConcurrentHashMap和LinkedHashMap差異和適用情形
LinkedHashMap 會(huì)將put進(jìn)去的key value 按照次序進(jìn)行遍歷。
? 如果讓你自己實(shí)現(xiàn)一個(gè)orm框架會(huì)如何實(shí)現(xiàn)
? 說一說了解的鎖(主要介紹可重入鎖
ReentrantLock)
? mysql數(shù)據(jù)庫索引及底層實(shí)現(xiàn)(B+樹)及使用索引的優(yōu)缺點(diǎn)
? 說一說對(duì)jvm內(nèi)存模型的了解(扯了一點(diǎn)GC)
? equals和hashcode的區(qū)別
? 說一說快速排序
? 各種排序算法的時(shí)間復(fù)雜度和空間復(fù)雜度
? 算法講思路:兩個(gè)有序數(shù)組合并并且找出第k小的數(shù)字
? 算法講思路:二叉樹的層序遍歷(借助輔助隊(duì)列完成,牛客網(wǎng)原題)
? 算法講思路:Dijkstra(求最短路徑)
? 介紹常用的GC策略以及年輕代中為什么要分Eden、Survivor區(qū)、年輕代為什么要使用復(fù)制-清除算法(因?yàn)榇蟛糠謱?duì)象都是朝生夕死的)
? equals和hashcode的區(qū)別、hashcode的作用(二面真的是又問了一遍)
? 數(shù)據(jù)庫索引,MyISAM、InnoDB的區(qū)別(一個(gè)B+樹葉子節(jié)點(diǎn)存的地址,一個(gè)是直接存的數(shù)據(jù))
? 進(jìn)程與線程的區(qū)別,多線程有可能會(huì)造成的問題(占用內(nèi)存,資源競(jìng)爭產(chǎn)生死鎖啊之類的)
? java基本類型與引用類型的區(qū)別
? 類中定義static和非static,有什么區(qū)別,static要注意什么
? 新生代、老年代是怎么定義和分配的
? 堆排序的過程
? 100GB的數(shù)據(jù)在4GB內(nèi)存中排序 使用外排序,歸并排序