欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JAVA開發(fā)中有哪些面試題及答案

本文小編為大家詳細(xì)介紹“JAVA開發(fā)中有哪些面試題及答案”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“JAVA開發(fā)中有哪些面試題及答案”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括西疇網(wǎng)站建設(shè)、西疇網(wǎng)站制作、西疇網(wǎng)頁制作以及西疇網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,西疇網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到西疇省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、自我介紹、自己做的項(xiàng)目和技術(shù)領(lǐng)域

開放題

2、項(xiàng)目中的監(jiān)控:那個(gè)監(jiān)控指標(biāo)常見的有哪些?

答:CPU、內(nèi)存、IO 等等。建議下載個(gè)nmon工具,里面有各個(gè)指標(biāo)。

數(shù)據(jù)庫:MySQL(緩存命中、索引、單條SQL性能、數(shù)據(jù)庫線程數(shù)、數(shù)據(jù)池連接數(shù))

中間件:1.消息2、負(fù)載均衡3、緩存(包括線程數(shù)、連接數(shù)、日志)。

網(wǎng)絡(luò): 吞吐量、吞吐率

應(yīng)用: jvm內(nèi)存、日志、Full GC頻率

3、微服務(wù)涉及到的技術(shù)以及需要注意的問題有哪些?

4、注冊(cè)中心你了解了哪些?

答:Consul 、Eureka、ZooKeeper

5、consul 的可靠性你了解嗎?

6、consul 的機(jī)制你有沒有具體深入過?有沒有和其他的注冊(cè)中心對(duì)比過?

7、項(xiàng)目用 Spring 比較多,有沒有了解 Spring 的原理?AOP 和 IOC 的原理

答:(1). IoC(Inversion of Control)是指容器控制程序?qū)ο笾g的關(guān)系,而不是傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直接操控??刂茩?quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移是所謂反轉(zhuǎn)。 對(duì)于Spring而言,就是由Spring來控制對(duì)象的生命周期和對(duì)象之間的關(guān)系;IoC還有另外一個(gè)名字——“依賴注入(Dependency Injection)”。從名字上理解,所謂依賴注入,即組件之間的依賴關(guān)系由容器在運(yùn)行期決定,即由容器動(dòng)態(tài)地將某種依賴關(guān)系注入到組件之中。

(2). 在Spring的工作方式中,所有的類都會(huì)在spring容器中登記,告訴spring這是個(gè)什么東西,你需要什么東西,然后spring會(huì)在系統(tǒng)運(yùn)行到適當(dāng)?shù)臅r(shí)候,把你要的東西主動(dòng)給你,同時(shí)也把你交給其他需要你的東西。所有的類的創(chuàng)建、銷毀都由 spring來控制,也就是說控制對(duì)象生存周期的不再是引用它的對(duì)象,而是spring。對(duì)于某個(gè)具體的對(duì)象而言,以前是它控制其他對(duì)象,現(xiàn)在是所有對(duì)象都被spring控制,所以這叫控制反轉(zhuǎn)。

(3). 在系統(tǒng)運(yùn)行中,動(dòng)態(tài)的向某個(gè)對(duì)象提供它所需要的其他對(duì)象。

(4). 依賴注入的思想是通過反射機(jī)制實(shí)現(xiàn)的,在實(shí)例化一個(gè)類時(shí),它通過反射調(diào)用類中set方法將事先保存在HashMap中的類屬性注入到類中。 總而言之,在傳統(tǒng)的對(duì)象創(chuàng)建方式中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實(shí)例,而在Spring中創(chuàng)建被調(diào)用者的工作由Spring來完成,然后注入調(diào)用者,即所謂的依賴注入or控制反轉(zhuǎn)。 注入方式有兩種:依賴注入和設(shè)置注入; IoC的優(yōu)點(diǎn):降低了組件之間的耦合,降低了業(yè)務(wù)對(duì)象之間替換的復(fù)雜性,使之能夠靈活的管理對(duì)象。

AOP(Aspect Oriented Programming)

(1). AOP面向方面編程基于IoC,是對(duì)OOP的有益補(bǔ)充;

(2). AOP利用一種稱為“橫切”的技術(shù),剖解開封裝的對(duì)象內(nèi)部,并將那些影響了 多個(gè)類的公共行為封裝到一個(gè)可重用模塊,并將其名為“Aspect”,即方面。所謂“方面”,簡(jiǎn)單地說,就是將那些與業(yè)務(wù)無關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的 邏輯或責(zé)任封裝起來,比如日志記錄,便于減少系統(tǒng)的重復(fù)代碼,降低模塊間的耦合度,并有利于未來的可操作性和可維護(hù)性。

(3). AOP代表的是一個(gè)橫向的關(guān) 系,將“對(duì)象”比作一個(gè)空心的圓柱體,其中封裝的是對(duì)象的屬性和行為;則面向方面編程的方法,就是將這個(gè)圓柱體以切面形式剖開,選擇性的提供業(yè)務(wù)邏輯。而 剖開的切面,也就是所謂的“方面”了。然后它又以巧奪天功的妙手將這些剖開的切面復(fù)原,不留痕跡,但完成了效果。

(4). 實(shí)現(xiàn)AOP的技術(shù),主要分為兩大類:一是采用動(dòng)態(tài)代理技術(shù),利用截取消息的方式,對(duì)該消息進(jìn)行裝飾,以取代原有對(duì)象行為的執(zhí)行;二是采用靜態(tài)織入的方式,引入特定的語法創(chuàng)建“方面”,從而使得編譯器可以在編譯期間織入有關(guān)“方面”的代碼。

(5). Spring實(shí)現(xiàn)AOP:JDK動(dòng)態(tài)代理和CGLIB代理 JDK動(dòng)態(tài)代理:其代理對(duì)象必須是某個(gè)接口的實(shí)現(xiàn),它是通過在運(yùn)行期間創(chuàng)建一個(gè)接口的實(shí)現(xiàn)類來完成對(duì)目標(biāo)對(duì)象的代理;其核心的兩個(gè)類是InvocationHandler和Proxy。 CGLIB代理:實(shí)現(xiàn)原理類似于JDK動(dòng)態(tài)代理,只是它在運(yùn)行期間生成的代理對(duì)象是針對(duì)目標(biāo)類擴(kuò)展的子類。CGLIB是高效的代碼生成包,底層是依靠ASM(開源的java字節(jié)碼編輯類庫)操作字節(jié)碼實(shí)現(xiàn)的,性能比JDK強(qiáng);需要引入包asm.jar和cglib.jar。 使用AspectJ注入式切面和@AspectJ注解驅(qū)的切面實(shí)際上底層也是通過動(dòng)態(tài)代理實(shí)現(xiàn)的。

(6). AOP使用場(chǎng)景:

Authentication 權(quán)限檢查

Caching 緩存

Context passing 內(nèi)容傳遞

Error handling 錯(cuò)誤處理

Lazy loading 延遲加載

Debugging 調(diào)試

logging, tracing, profiling and monitoring 日志記錄,跟蹤,優(yōu)化,校準(zhǔn)

Performance optimization 性能優(yōu)化,效率檢查

Persistence 持久化

Resource pooling 資源池

Synchronization 同步

Transactions 事務(wù)管理

另外Filter的實(shí)現(xiàn)和struts2的攔截器的實(shí)現(xiàn)都是AOP思想的體現(xiàn)。

8、Spring Boot除了自動(dòng)配置,相比傳統(tǒng)的 Spring 有什么其他的區(qū)別?

為Spring 生態(tài)系統(tǒng)的開發(fā)提供一種更簡(jiǎn)潔的方式,提供了很多非功能性特性,例如:嵌入式 Server,Security,統(tǒng)計(jì),健康檢查,外部配置等等,主要體現(xiàn)在以下幾點(diǎn):

1.Spring Boot可以建立獨(dú)立的Spring應(yīng)用程序;

2.內(nèi)嵌了如Tomcat,Jetty和Undertow這樣的容器,也就是說可以直接跑起來,用不著再做部署工作了;

3.無需再像Spring那樣搞一堆繁瑣的xml文件的配置;

4.可以自動(dòng)配置Spring。SpringBoot將原有的XML配置改為Java配置,將bean注入改為使用注解注入的方式(@Autowire),并將多個(gè)xml、properties配置濃縮在一個(gè)appliaction.yml配置文件中。

5.提供了一些現(xiàn)有的功能,如量度工具,表單數(shù)據(jù)驗(yàn)證以及一些外部配置這樣的一些第三方功能;

6.整合常用依賴(開發(fā)庫,例如spring-webmvc、jackson-json、validation-api和tomcat等),提供的POM可以簡(jiǎn)化Maven的配置。當(dāng)我們引入核心依賴時(shí),SpringBoot會(huì)自引入其他依賴。

9、Spring Cloud 有了解多少?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring Cloud并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。

10、Spring Bean 的生命周期

一個(gè)Bean從創(chuàng)建到銷毀,如果是用BeanFactory來生成,管理Bean的話

Spring上下文中的Bean也類似,如下

1、實(shí)例化一個(gè)Bean--也就是我們常說的new;

2、按照Spring上下文對(duì)實(shí)例化的Bean進(jìn)行配置--也就是IOC注入;

3、如果這個(gè)Bean已經(jīng)實(shí)現(xiàn)了BeanNameAware接口,會(huì)調(diào)用它實(shí)現(xiàn)的setBeanName(String)方法,此處傳遞的就是Spring配置文件中Bean的id值

4、如果這個(gè)Bean已經(jīng)實(shí)現(xiàn)了BeanFactoryAware接口,會(huì)調(diào)用它實(shí)現(xiàn)的setBeanFactory(setBeanFactory(BeanFactory)傳遞的是Spring工廠自身(可以用這個(gè)方式來獲取其它Bean,只需在Spring配置文件中配置一個(gè)普通的Bean就可以);

5、如果這個(gè)Bean已經(jīng)實(shí)現(xiàn)了ApplicationContextAware接口,會(huì)調(diào)用setApplicationContext(ApplicationContext)方法,傳入Spring上下文(同樣這個(gè)方式也可以實(shí)現(xiàn)步驟4的內(nèi)容,但比4更好,因?yàn)锳pplicationContext是BeanFactory的子接口,有更多的實(shí)現(xiàn)方法);

6、如果這個(gè)Bean關(guān)聯(lián)了BeanPostProcessor接口,將會(huì)調(diào)用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor經(jīng)常被用作是Bean內(nèi)容的更改,并且由于這個(gè)是在Bean初始化結(jié)束時(shí)調(diào)用那個(gè)的方法,也可以被應(yīng)用于內(nèi)存或緩存技術(shù);

7、如果Bean在Spring配置文件中配置了init-method屬性會(huì)自動(dòng)調(diào)用其配置的初始化方法。

8、如果這個(gè)Bean關(guān)聯(lián)了BeanPostProcessor接口,將會(huì)調(diào)用postProcessAfterInitialization(Object obj, String s)方法、;

注:以上工作完成以后就可以應(yīng)用這個(gè)Bean了,那這個(gè)Bean是一個(gè)Singleton的,所以一般情況下我們調(diào)用同一個(gè)id的Bean會(huì)是在內(nèi)容地址相同的實(shí)例,當(dāng)然在Spring配置文件中也可以配置非Singleton,這里我們不做贅述。

9、當(dāng)Bean不再需要時(shí),會(huì)經(jīng)過清理階段,如果Bean實(shí)現(xiàn)了DisposableBean這個(gè)接口,會(huì)調(diào)用那個(gè)其實(shí)現(xiàn)的destroy()方法;

10、最后,如果這個(gè)Bean的Spring配置中配置了destroy-method屬性,會(huì)自動(dòng)調(diào)用其配置的銷毀方法。

另外我們這里描述的是應(yīng)用Spring上下文Bean的生命周期,如果應(yīng)用Spring的工廠也就是BeanFactory的話去掉第5步就Ok了

11、HashMap 和 hashTable 區(qū)別?

區(qū)別:Hashtable是線程安全的,效率比較低

Hashtable既不支持Null key也不支持Null value。Hashtable的put()方法的注釋中有說明

Hashtable默認(rèn)的初始大小為11,之后每次擴(kuò)充,容量變?yōu)樵瓉淼?n+1。

HashMap默認(rèn)的初始化大小為16。之后每次擴(kuò)充,容量變?yōu)樵瓉淼?倍

Hashtable在計(jì)算元素的位置時(shí)需要進(jìn)行一次除法運(yùn)算,而除法運(yùn)算是比較耗時(shí)的

HashMap為了提高計(jì)算效率,將哈希表的大小固定為了2的冪,這樣在取模預(yù)算時(shí),不需要做除法,只需要做位運(yùn)算。位運(yùn)算比除法的效率要高很多。

HashMap是繼承自AbstractMap類,而HashTable是繼承自Dictionary類。不過它們都實(shí)現(xiàn)了同時(shí)實(shí)現(xiàn)了map、Cloneable(可復(fù)制)、Serializable(可序列化)這三個(gè)接口

12、Object 的 hashcode 方法重寫了,equals 方法要不要改?

不需要,Ojbect類中有兩個(gè)方法equals、hashCode,這兩個(gè)方法都是用來比較兩個(gè)對(duì)象是否相等的,如果兩個(gè)對(duì)象相等(equal),那么必須擁有相同 的哈希碼(hash code)

即使兩個(gè)對(duì)象有相同的哈希值(hash code),他們不一定相等

重寫equals()方法就必須重寫hashCode(),但重寫hashcode方法不一定要重寫equals方法

13、Hashmap 線程不安全的出現(xiàn)場(chǎng)景

用ConcurrentHashMap 線程安全

多線程處理時(shí)hashmap線程不安全

首先hashmap里這個(gè)size沒有用volatile關(guān)鍵字修飾,代表這不是一個(gè)內(nèi)存可見的變量,線程操作數(shù)據(jù)的時(shí)候一般是從主存拷貝一個(gè)變量副本進(jìn)行操作,操作完成過后在把size的值寫回到主存size的

線程不安全問題應(yīng)該屬于并發(fā)問題之一的,屬于相對(duì)高級(jí)的問題了。這個(gè)時(shí)候的問題已經(jīng)不僅僅局限于代碼層面了,很多時(shí)候需要結(jié)合JVM一起分析了

14、線上服務(wù) CPU 很高該怎么做?有哪些措施可以找到問題

定位出現(xiàn)問題的堆棧信息排查具體問題

1、top命令:Linux命令??梢圆榭磳?shí)時(shí)的CPU使用情況。也可以查看最近一段時(shí)間的CPU使用情況。

2、ps命令: Linux命令。強(qiáng)大的進(jìn)程狀態(tài)監(jiān)控命令??梢圆榭催M(jìn)程以及進(jìn)程中線程的當(dāng)前CPU使用情況。屬于當(dāng)前狀態(tài)的采樣數(shù)據(jù)。

3、jstack: Java提供的命令??梢圆榭茨硞€(gè)進(jìn)程的當(dāng)前線程棧運(yùn)行情況。根據(jù)這個(gè)命令的輸出可以定位某個(gè)進(jìn)程的所有線程的當(dāng)前運(yùn)行狀態(tài)、運(yùn)行代碼,以及是否死鎖等等。

4、pstack:Linux命令。可以查看某個(gè)進(jìn)程的當(dāng)前線程棧運(yùn)行情況

15、JDK 中有哪幾個(gè)線程池?順帶把線程池講了個(gè)遍

JUC提供了調(diào)度器對(duì)象Executors來創(chuàng)建線程池,可創(chuàng)建的線程池有四種

1、newFixedThreadPool創(chuàng)建一個(gè)指定工作線程數(shù)量的線程池。每當(dāng)提交一個(gè)任務(wù)就創(chuàng)建一個(gè)工作線程,如果工作線程數(shù)量達(dá)到線程池初始的最大數(shù),則將提交的任務(wù)存入到池隊(duì)列中。

2、newCachedThreadPool創(chuàng)建一個(gè)可緩存的線程池。這種類型的線程池特點(diǎn)是:

1).工作線程的創(chuàng)建數(shù)量幾乎沒有限制(其實(shí)也有限制的,數(shù)目為Interger. MAX_VALUE), 這樣可靈活的往線程池中添加線程。

2).如果長(zhǎng)時(shí)間沒有往線程池中提交任務(wù),即如果工作線程空閑了指定的時(shí)間(默認(rèn)為1分鐘),則該工作線程將自動(dòng)終止。終止后,如果你又提交了新的任務(wù),則線程池重新創(chuàng)建一個(gè)工作線程。

3、newSingleThreadExecutor創(chuàng)建一個(gè)單線程化的Executor,即只創(chuàng)建唯一的工作者線程來執(zhí)行任務(wù),如果這個(gè)線程異常結(jié)束,會(huì)有另一個(gè)取代它,保證順序執(zhí)行(我覺得這點(diǎn)是它的特色)。單工作線程最大的特點(diǎn)是可保證順序地執(zhí)行各個(gè)任務(wù),并且在任意給定的時(shí)間不會(huì)有多個(gè)線程是活動(dòng)的 。

4、newScheduleThreadPool創(chuàng)建一個(gè)定長(zhǎng)的線程池,而且支持定時(shí)的以及周期性的任務(wù)執(zhí)行,類似于Timer。(這種線程池原理暫還沒完全了解透徹)

15、SQL 優(yōu)化的常見方法有哪些

查詢條件減少使用函數(shù),避免全表掃描

減少不必要的表連接

有些數(shù)據(jù)操作的業(yè)務(wù)邏輯可以放到應(yīng)用層進(jìn)行實(shí)現(xiàn)

可以使用with as

盡量避免使用游標(biāo),因?yàn)橛螛?biāo)的效率較差

不要把SQL語句寫得太復(fù)雜

不能循環(huán)執(zhí)行查詢

用 exists 代替 in

表關(guān)聯(lián)關(guān)系不要太糾結(jié)

查詢多用索引列取查,用charindex或者like[0-9]來代替%%

inner關(guān)聯(lián)的表可以先查出來,再去關(guān)聯(lián)leftjoin的表

可以進(jìn)行表關(guān)聯(lián)數(shù)據(jù)拆分,即先查出核心數(shù)據(jù),再通過核心數(shù)據(jù)查其他數(shù)據(jù),這樣會(huì)快得多

參考SQL執(zhí)行順序進(jìn)行優(yōu)化

表關(guān)聯(lián)時(shí)取別名,也能提高效率

使用視圖,給視圖建立索引進(jìn)行優(yōu)化

使用數(shù)據(jù)倉庫的形式,建立單獨(dú)的表存儲(chǔ)數(shù)據(jù),根據(jù)時(shí)間戳定期更新數(shù)據(jù)。將多表關(guān)聯(lián)的數(shù)據(jù)集中抽取存入一張表中,查詢時(shí)單表查詢,提高了查詢效率

對(duì)查詢進(jìn)行優(yōu)化,應(yīng)盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引

應(yīng)盡量避免在 where 子句中對(duì)字段進(jìn)行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:

select id from t where num is null

可以在num上設(shè)置默認(rèn)值0,確保表中num列沒有null值,然后這樣查詢:

select id from t where num=0

16.應(yīng)盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描

17、SQL 索引的順序,字段的順序

18、查看 SQL 是不是使用了索引?(有什么工具)

在select語句前加上EXPLAIN即可

19、TCP 和 UDP 的區(qū)別?TCP 數(shù)據(jù)傳輸過程中怎么做到可靠的?

UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議。它是屬于TCP/IP協(xié)議族中的一種

1)為了保證數(shù)據(jù)包的可靠傳遞,發(fā)送方必須把已發(fā)送的數(shù)據(jù)包保留在緩沖區(qū);

(2)并為每個(gè)已發(fā)送的數(shù)據(jù)包啟動(dòng)一個(gè)超時(shí)定時(shí)器;

(3)如在定時(shí)器超時(shí)之前收到了對(duì)方發(fā)來的應(yīng)答信息(可能是對(duì)本包的應(yīng)答,也可以是對(duì)本包后續(xù)包的應(yīng)答),則釋放該數(shù)據(jù)包占用的緩沖區(qū);

(4)否則,重傳該數(shù)據(jù)包,直到收到應(yīng)答或重傳次數(shù)超過規(guī)定的最大次數(shù)為止。

(5)接收方收到數(shù)據(jù)包后,先進(jìn)行CRC校驗(yàn),如果正確則把數(shù)據(jù)交給上層協(xié)議,然后給發(fā)送方發(fā)送一個(gè)累計(jì)應(yīng)答包,表明該數(shù)據(jù)已收到,如果接收方正好也有數(shù)據(jù)要發(fā)給發(fā)送方,應(yīng)答包也可方在數(shù)據(jù)包中捎帶過去。

20、說下你知道的排序算法吧

常見的內(nèi)部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等

21、查找一個(gè)數(shù)組的中位數(shù)?

通過二分查找法來找中位數(shù)

基本思想是:假設(shè)ar1[i]是合并后的中位數(shù),那么ar1[i]大于ar1[]中前i-1個(gè)數(shù),且大于ar2[]中前j=n-i-1個(gè)數(shù)。通過ar1[i]和ar2[j]、ar2[j+1]兩個(gè)數(shù)的比較,在ar1[i]的左邊或者ar1[i]右邊繼續(xù)進(jìn)行二分查找。對(duì)于兩個(gè)數(shù)組 ar1[] 和ar2[], 先在 ar1[] 中做二分查找。如果在ar1[]中沒找到中位數(shù), 繼續(xù)在ar2[]中查找。

算法流程:

1) 得到數(shù)組ar1[]最中間的數(shù),假設(shè)下標(biāo)為i.

2) 計(jì)算對(duì)應(yīng)在數(shù)組ar2[]的下標(biāo)j,j = n-i-1

3) 如果 ar1[i] >= ar2[j] and ar1[i] <= ar2[j+1],那么 ar1[i] 和 ar2[j] 就是兩個(gè)中間元素,返回ar2[j] 和 ar1[i] 的平均值

4) 如果 ar1[i] 大于 ar2[j] 和 ar2[j+1] 那么在ar1[i]的左部分做二分查找(i.e., arr[left ... i-1])

5) 如果 ar1[i] 小于 ar2[j] 和 ar2[j+1] 那么在ar1[i]的右部分做二分查找(i.e., arr[i+1....right])

6) 如果到達(dá)數(shù)組ar1[]的邊界(left or right),則在數(shù)組ar2[]中做二分查找

時(shí)間復(fù)雜度:O(logn)。

讀到這里,這篇“JAVA開發(fā)中有哪些面試題及答案”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:JAVA開發(fā)中有哪些面試題及答案
網(wǎng)站URL:http://chinadenli.net/article44/gphshe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)公司、微信公眾號(hào)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)