版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
東軟面試題匯總(完全整理)含答案Java開發(fā)崗常見面試題及答案Q:JVM內(nèi)存結(jié)構(gòu)分為哪幾個部分?各部分的作用是什么?A:JVM內(nèi)存結(jié)構(gòu)主要包括堆(Heap)、方法區(qū)(MethodArea)、虛擬機(jī)棧(VMStack)、本地方法棧(NativeMethodStack)和程序計(jì)數(shù)器(ProgramCounterRegister)。堆是JVM管理的最大一塊內(nèi)存,所有對象實(shí)例和數(shù)組在此分配,是垃圾回收的主要區(qū)域;方法區(qū)存儲類信息、常量、靜態(tài)變量等,JDK1.8后改為元空間(MetaSpace),使用本地內(nèi)存;虛擬機(jī)棧為每個方法調(diào)用創(chuàng)建棧幀,存儲局部變量表、操作數(shù)棧、動態(tài)鏈接等,線程私有;本地方法棧為本地方法服務(wù),與虛擬機(jī)棧類似;程序計(jì)數(shù)器記錄當(dāng)前線程執(zhí)行的字節(jié)碼行號,線程私有,是唯一不會OOM的區(qū)域。Q:Java中String、StringBuilder、StringBuffer的區(qū)別?A:String是不可變類,底層使用finalchar[]存儲,每次修改會提供新對象;StringBuilder和StringBuffer是可變類,底層數(shù)組可擴(kuò)容。StringBuilder線程不安全,效率高;StringBuffer線程安全(方法用synchronized修飾),效率較低。三者使用場景:少量字符串操作選String,單線程大量操作選StringBuilder,多線程大量操作選StringBuffer。Q:Java垃圾回收機(jī)制中,常見的垃圾收集算法有哪些?各自的優(yōu)缺點(diǎn)是什么?A:常見算法包括標(biāo)記清除(MarkSweep)、標(biāo)記復(fù)制(MarkCopy)、標(biāo)記整理(MarkCompact)。標(biāo)記清除分為標(biāo)記存活對象和清除未標(biāo)記對象兩步,缺點(diǎn)是會產(chǎn)生內(nèi)存碎片;標(biāo)記復(fù)制將內(nèi)存分為大小相等的兩塊,每次只使用一塊,回收時將存活對象復(fù)制到另一塊,解決了碎片問題,但空間利用率低(僅50%);標(biāo)記整理在標(biāo)記后將存活對象向一端移動并整理,避免碎片且空間利用率高,但移動對象成本較高?,F(xiàn)代JVM通常采用分代收集算法,年輕代(Eden+Survivor)用標(biāo)記復(fù)制,老年代用標(biāo)記整理或標(biāo)記清除+壓縮。Q:Spring框架中IOC和AOP的核心思想是什么?如何實(shí)現(xiàn)?A:IOC(控制反轉(zhuǎn))的核心是將對象的創(chuàng)建、依賴管理從程序代碼轉(zhuǎn)移到容器(如Spring容器),通過容器注入依賴對象,降低耦合。實(shí)現(xiàn)方式包括依賴注入(DI),如構(gòu)造器注入、setter注入、注解注入(@Autowired)。AOP(面向切面編程)的核心是將分散在業(yè)務(wù)邏輯中的通用功能(如日志、事務(wù))提取為切面,通過動態(tài)代理(JDK動態(tài)代理或CGLIB)在特定連接點(diǎn)(方法調(diào)用、異常拋出等)插入切面邏輯,實(shí)現(xiàn)業(yè)務(wù)與非業(yè)務(wù)邏輯的解耦。SpringAOP默認(rèn)對接口使用JDK動態(tài)代理,對類使用CGLIB。Q:SpringBoot的自動配置原理是什么?如何自定義一個starter?A:SpringBoot自動配置通過@EnableAutoConfiguration注解觸發(fā),該注解會加載METAINF/spring.factories中配置的自動配置類。每個自動配置類通過@Conditional系列注解(如@ConditionalOnClass、@ConditionalOnMissingBean)判斷是否生效,當(dāng)類路徑存在所需依賴且未手動配置Bean時,自動配置類會向容器注冊Bean。自定義starter需創(chuàng)建Maven項(xiàng)目,在resources/METAINF下添加spring.factories,指定自動配置類;自動配置類中使用@Configuration定義Bean,通過@Conditional控制生效條件;提供屬性配置類(@ConfigurationProperties)允許外部自定義參數(shù)。Q:MyBatis中{}和${}的區(qū)別是什么?如何防止SQL注入?A:{}是預(yù)編譯處理,MyBatis會將其替換為?占位符,調(diào)用PreparedStatement執(zhí)行,防止SQL注入;${}是字符串替換,直接將參數(shù)拼接到SQL語句中,存在SQL注入風(fēng)險。防止SQL注入的方法:優(yōu)先使用{};對${}的使用場景(如動態(tài)表名、列名),需手動校驗(yàn)參數(shù)合法性;開啟MyBatis的駝峰命名映射(mapUnderscoreToCamelCase)減少拼接需求;使用MyBatisPlus等框架的QueryWrapper避免手動拼接。Q:數(shù)據(jù)庫事務(wù)的四大特性(ACID)是什么?MySQL的默認(rèn)事務(wù)隔離級別是什么?A:ACID指原子性(Atomicity,事務(wù)不可分割)、一致性(Consistency,事務(wù)前后數(shù)據(jù)狀態(tài)合法)、隔離性(Isolation,事務(wù)間互不干擾)、持久性(Durability,事務(wù)提交后數(shù)據(jù)永久保存)。MySQLInnoDB引擎默認(rèn)事務(wù)隔離級別是可重復(fù)讀(RepeatableRead),通過MVCC(多版本并發(fā)控制)和行鎖實(shí)現(xiàn),解決了臟讀問題,但可能存在幻讀(當(dāng)前讀會加鎖解決)。Q:線程池的核心參數(shù)有哪些?如何合理配置?A:線程池的核心參數(shù)包括corePoolSize(核心線程數(shù))、maximumPoolSize(最大線程數(shù))、keepAliveTime(非核心線程空閑存活時間)、unit(時間單位)、workQueue(任務(wù)隊(duì)列)、threadFactory(線程工廠)、handler(拒絕策略)。合理配置需考慮任務(wù)類型:CPU密集型任務(wù)(如計(jì)算),核心線程數(shù)建議為CPU核心數(shù)+1;IO密集型任務(wù)(如數(shù)據(jù)庫操作),核心線程數(shù)可設(shè)為CPU核心數(shù)2或更高。任務(wù)隊(duì)列通常選有界隊(duì)列(如ArrayBlockingQueue)防止OOM,拒絕策略常用AbortPolicy(拋出異常)或CallerRunsPolicy(調(diào)用者執(zhí)行)。C++開發(fā)崗常見面試題及答案Q:C++中面向?qū)ο蟮娜筇匦允鞘裁??請分別解釋。A:封裝、繼承、多態(tài)。封裝是將數(shù)據(jù)和操作綁定,通過訪問控制(public/private/protected)隱藏實(shí)現(xiàn)細(xì)節(jié);繼承允許子類復(fù)用父類代碼,擴(kuò)展新功能(單繼承/多繼承);多態(tài)指不同對象對同一消息作出不同響應(yīng),分為靜態(tài)多態(tài)(編譯時,函數(shù)重載、模板)和動態(tài)多態(tài)(運(yùn)行時,虛函數(shù)+繼承)。Q:new/delete和malloc/free的區(qū)別是什么?A:new/delete是C++運(yùn)算符,malloc/free是C庫函數(shù)。new會調(diào)用構(gòu)造函數(shù),delete會調(diào)用析構(gòu)函數(shù);malloc僅分配內(nèi)存,free僅釋放內(nèi)存。new返回對象類型指針,無需強(qiáng)制轉(zhuǎn)換;malloc返回void,需手動轉(zhuǎn)換。new可重載,malloc無法重載。new分配失敗拋異常(bad_alloc),malloc返回NULL。Q:智能指針有哪些?各自的實(shí)現(xiàn)原理和使用場景?A:C++11提供unique_ptr、shared_ptr、weak_ptr。unique_ptr是獨(dú)占所有權(quán)的智能指針,不可拷貝(僅可移動),管理單個對象或數(shù)組(需指定刪除器);shared_ptr通過引用計(jì)數(shù)(原子操作)實(shí)現(xiàn)共享所有權(quán),多個指針指向同一對象,引用計(jì)數(shù)為0時釋放內(nèi)存;weak_ptr是弱引用,指向shared_ptr管理的對象,不增加引用計(jì)數(shù),用于解決shared_ptr的循環(huán)引用問題(如父子對象相互引用)。Q:虛函數(shù)表(vtable)的作用是什么?多繼承時虛函數(shù)表如何存儲?A:虛函數(shù)表是類的靜態(tài)成員,存儲類中虛函數(shù)的函數(shù)指針。當(dāng)類包含虛函數(shù)時,對象內(nèi)存布局的頭部會有一個vptr指針指向虛函數(shù)表。動態(tài)多態(tài)通過vptr在運(yùn)行時訪問實(shí)際對象的虛函數(shù)表,調(diào)用正確的函數(shù)實(shí)現(xiàn)。多繼承時,子類有多個虛函數(shù)表(每個父類對應(yīng)一個),子類重寫的虛函數(shù)會覆蓋所有父類虛函數(shù)表中的對應(yīng)條目,未重寫的保留父類虛函數(shù)表的指針。Q:STL中vector和list的區(qū)別?如何選擇?A:vector是動態(tài)數(shù)組,連續(xù)內(nèi)存存儲,支持O(1)隨機(jī)訪問,插入/刪除(非尾部)需移動元素,時間O(n);list是雙向鏈表,非連續(xù)內(nèi)存,不支持隨機(jī)訪問(需遍歷),插入/刪除(任意位置)時間O(1)(僅修改指針)。選擇場景:需要隨機(jī)訪問或尾部插入選vector;需要頻繁中間插入/刪除選list;需兼顧兩者可考慮deque(雙端隊(duì)列)。前端開發(fā)崗常見面試題及答案Q:HTML5有哪些新特性?A:語義化標(biāo)簽(<header>、<nav>、<section>、<article>、<footer>)提升結(jié)構(gòu)可讀性;新表單類型(email、tel、date)和屬性(required、pattern)增強(qiáng)表單驗(yàn)證;Canvas(2D/3D繪圖)、SVG(矢量圖)、video/audio標(biāo)簽支持多媒體;本地存儲(localStorage/sessionStorage)替代cookie;WebSocket實(shí)現(xiàn)長連接;Geolocation(地理定位)、WebWorker(后臺線程)等API。Q:CSS盒模型有哪幾種?如何設(shè)置?A:標(biāo)準(zhǔn)盒模型(contentbox)和IE盒模型(borderbox)。標(biāo)準(zhǔn)盒模型的width/height僅包含內(nèi)容(content),不包含padding和border;IE盒模型的width/height包含content+padding+border。通過boxsizing屬性設(shè)置:boxsizing:contentbox(默認(rèn))或boxsizing:borderbox。Q:JavaScript的原型鏈?zhǔn)鞘裁矗咳绾螌?shí)現(xiàn)繼承?A:每個對象(除null)都有一個原型對象(__proto__),原型對象也有自己的原型,形成原型鏈。當(dāng)訪問對象屬性時,若對象自身沒有,則沿原型鏈向上查找,直到null(Ototype.__proto__=null)。JavaScript繼承通過原型鏈實(shí)現(xiàn),常見方式包括:構(gòu)造函數(shù)繼承(call/apply調(diào)用父類構(gòu)造)、原型鏈繼承(子類原型=父類實(shí)例)、組合繼承(前兩者結(jié)合)、ES6的classextends(基于原型鏈,語法糖)。Q:Vue的響應(yīng)式原理是什么?如何檢測數(shù)組的變化?A:Vue2使用Object.defineProperty對數(shù)據(jù)對象的屬性進(jìn)行劫持,為每個屬性創(chuàng)建Dep(依賴收集器),當(dāng)屬性被訪問時(getter)將Watcher(觀察者)添加到Dep中,當(dāng)屬性被修改時(setter)通知所有Watcher更新視圖。對于數(shù)組,Vue重寫了數(shù)組的7個變異方法(push/pop/shift/unshift/splice/sort/reverse),在方法執(zhí)行后觸發(fā)更新。Vue3使用Proxy替代Object.defineProperty,可直接監(jiān)聽對象和數(shù)組的變化,無需重寫數(shù)組方法。Q:虛擬DOM(VirtualDOM)的作用是什么?diff算法的核心邏輯?A:虛擬DOM是真實(shí)DOM的JS對象表示(如VNode),通過比較新舊VNode的差異(diff算法),僅更新需要變化的真實(shí)DOM節(jié)點(diǎn),減少DOM操作次數(shù),提升性能。diff算法遵循深度優(yōu)先、同層比較原則:先比較節(jié)點(diǎn)類型(不同則替換),類型相同則比較屬性(更新屬性),然后遞歸比較子節(jié)點(diǎn)。對于列表節(jié)點(diǎn),通過key標(biāo)識唯一子節(jié)點(diǎn),避免全量更新(僅移動/刪除/新增)。軟件測試崗常見面試題及答案Q:測試用例的核心要素有哪些?設(shè)計(jì)一個登錄功能的測試用例。A:測試用例的核心要素包括用例編號、用例標(biāo)題、測試環(huán)境、輸入數(shù)據(jù)、操作步驟、預(yù)期結(jié)果、實(shí)際結(jié)果、測試狀態(tài)(通過/失?。?。登錄功能測試用例設(shè)計(jì)示例:用例正常登錄(正確用戶名+正確密碼)輸入數(shù)據(jù):用戶名“test123”,密碼“Pass123!”操作步驟:1.打開登錄頁面;2.輸入用戶名和密碼;3.點(diǎn)擊“登錄”按鈕預(yù)期結(jié)果:跳轉(zhuǎn)至主頁,提示“登錄成功”用例錯誤密碼(正確用戶名+錯誤密碼)輸入數(shù)據(jù):用戶名“test123”,密碼“Wrong123”操作步驟:同上預(yù)期結(jié)果:保持登錄頁面,提示“密碼錯誤”其他場景:空用戶名/密碼、特殊字符用戶名、超過長度限制、驗(yàn)證碼錯誤(若有)、重復(fù)登錄、跨瀏覽器登錄等。Q:軟件缺陷的生命周期(BugLifecycle)包含哪些狀態(tài)?A:常見狀態(tài):New(新發(fā)現(xiàn))、Open(已確認(rèn)待修復(fù))、Fixed(開發(fā)修復(fù))、Reopened(回歸測試失敗,重新打開)、Closed(測試通過,關(guān)閉)、Rejected(缺陷不成立,拒絕修復(fù))、Deferred(延遲修復(fù))。流程:測試員提交New→開發(fā)確認(rèn)→狀態(tài)改為Open→開發(fā)修復(fù)后改為Fixed→測試回歸,通過則Closed,不通過則Reopened→重復(fù)直至Closed。Q:自動化測試的適用場景和局限性是什么?常用工具有哪些?A:適用場景:需求穩(wěn)定、重復(fù)執(zhí)行的測試(如冒煙測試);接口測試(高頻調(diào)用);性能測試(壓力/負(fù)載);多瀏覽器兼容測試。局限性:初始成本高(腳本開發(fā));無法替代手工測試(如UI細(xì)節(jié)、用戶體驗(yàn));對需求頻繁變更的項(xiàng)目維護(hù)成本高。常用工具:Selenium(WebUI自動化)、Appium(移動端)、Postman(接口測試)、JMeter(性能測試)、RobotFramework(關(guān)鍵字驅(qū)動)。Q:接口測試的核心步驟是什么?如何驗(yàn)證接口的正確性?A:核心步驟:1.明確接口文檔(URL、方法、參數(shù)、返回格式);2.準(zhǔn)備測試數(shù)據(jù)(正常/異常參數(shù));3.發(fā)送請求(工具:Postman、curl);4.驗(yàn)證響應(yīng)(狀態(tài)碼200/404等、返回?cái)?shù)據(jù)格式JSON/XML是否符合預(yù)期、業(yè)務(wù)邏輯是否正確,如登錄接口返回token是否有效);5.檢查關(guān)聯(lián)接口(如登錄后調(diào)用其他接口是否攜帶token);6.性能驗(yàn)證(響應(yīng)時間是否在允許范圍內(nèi))。HR及非技術(shù)崗常見面試題及答案Q:請做一個簡短的自我介紹(1分鐘內(nèi))。A:需包含基本信息(姓名、學(xué)歷、專業(yè))、工作/實(shí)習(xí)經(jīng)歷(重點(diǎn)匹配崗位的經(jīng)驗(yàn))、核心技能/優(yōu)勢(如“3年Java開發(fā)經(jīng)驗(yàn),熟悉Spring生態(tài),主導(dǎo)過醫(yī)療系統(tǒng)的用戶模塊開發(fā)”)、求職動機(jī)(“東軟在醫(yī)療信息化領(lǐng)域的領(lǐng)先地位與我的項(xiàng)目經(jīng)驗(yàn)契合,希望加入團(tuán)隊(duì)貢獻(xiàn)技術(shù)能力”)。Q:你為什么選擇東軟?A:可從公司行業(yè)地位(如醫(yī)療
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軌道有公共交通服務(wù)的條款制度
- 財(cái)務(wù)信息公開制度
- 2026湖南長沙市開福區(qū)青竹湖湘一健翎學(xué)校春季教師招聘8人備考考試試題附答案解析
- 2026中國科學(xué)院力學(xué)研究所高速流動失穩(wěn)與混合科研團(tuán)隊(duì)招聘科研財(cái)務(wù)助理人員1人參考考試題庫附答案解析
- 2026河北廊坊師范學(xué)院選聘26人備考考試題庫附答案解析
- 六年級語文上冊vj語文園地 含“口語交際”十三
- 2026年度上半年伊春湯旺縣公安局公開招聘警務(wù)輔助人員20人參考考試題庫附答案解析
- 2026甘肅金昌市機(jī)關(guān)事務(wù)管理局補(bǔ)招臨聘駕駛員3人備考考試題庫附答案解析
- 2026青海果洛州瑪多縣學(xué)前教育教師招聘12人備考考試題庫附答案解析
- 2026年濟(jì)寧梁山縣事業(yè)單位公開招聘初級綜合類崗位人員(34人)備考考試試題附答案解析
- 2026福建廈門市高崎出入境邊防檢查站招聘警務(wù)輔助人員30人備考題庫及完整答案詳解
- 2026西藏自治區(qū)教育考試院招聘非編工作人員11人筆試備考試題及答案解析
- 炎癥因子風(fēng)暴與神經(jīng)遞質(zhì)紊亂的干細(xì)胞干預(yù)策略
- 欄桿安裝施工方案要點(diǎn)
- 2026年及未來5年中國點(diǎn)膠機(jī)行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
- 2025四足機(jī)器人場景應(yīng)用發(fā)展藍(lán)皮書簡版
- 2026年1月浙江省高考(首考)英語試題(含答案)+聽力音頻+聽力材料
- 中國大型SUV市場數(shù)據(jù)洞察報告-
- 太陽能路燈施工組織設(shè)計(jì)
- XRD儀器使用實(shí)操手冊大全
- 司法鑒定機(jī)構(gòu)工作流程及質(zhì)量控制
評論
0/150
提交評論