IT面試筆試題目及答案參考_第1頁(yè)
IT面試筆試題目及答案參考_第2頁(yè)
IT面試筆試題目及答案參考_第3頁(yè)
IT面試筆試題目及答案參考_第4頁(yè)
IT面試筆試題目及答案參考_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——IT面試筆試題目及答案參考IT面試筆試題目及答案參考

IT面試筆試題目難嗎?求職面試時(shí),面試官一般都會(huì)問(wèn)你一些問(wèn)題,也可能是通過(guò)問(wèn)卷的形式提問(wèn),怎么回復(fù)才是最好的呢?這里給大家共享一些IT面試筆試題目,夢(mèng)想對(duì)大家有所扶助。

springcloud面試題匯總及答案

問(wèn)題一:說(shuō)一下springcloud?

SpringCloud是一系列框架的有序集合。它利用SpringBoot的開(kāi)發(fā)便利性高明地簡(jiǎn)化了分布式系統(tǒng)根基設(shè)施的開(kāi)發(fā),如服務(wù)察覺(jué)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用SpringBoot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。

SpringCloud是將目前各家公司開(kāi)發(fā)的對(duì)比成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái),通過(guò)SpringBoot風(fēng)格舉行再封裝屏蔽掉了繁雜的配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)樸易懂、易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包。

問(wèn)題二:使用SpringCloud有什么優(yōu)勢(shì)?

使用SpringBoot開(kāi)發(fā)分布式微服務(wù)時(shí),我們面臨以下問(wèn)題:

①與分布式系統(tǒng)相關(guān)的繁雜性-這種開(kāi)銷(xiāo)包括網(wǎng)絡(luò)問(wèn)題,延遲開(kāi)銷(xiāo),帶寬問(wèn)題,安好問(wèn)題。

②服務(wù)察覺(jué)-服務(wù)察覺(jué)工具管理群集中的流程和服務(wù)如何查找和彼此交談。它涉及一個(gè)服務(wù)目次,在該目次中注冊(cè)服務(wù),然后能夠查找并連接到該目次中的服務(wù)。

③冗余-分布式系統(tǒng)中的冗余問(wèn)題。

④負(fù)載平衡--負(fù)載平衡改善跨多個(gè)計(jì)算資源的工作負(fù)荷,諸如計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈路,中央處理單元,或磁盤(pán)驅(qū)動(dòng)器的分布。

⑤性能-問(wèn)題由于各種運(yùn)營(yíng)開(kāi)銷(xiāo)導(dǎo)致的性能問(wèn)題。

⑥部署繁雜性-Devops技能的要求。

問(wèn)題三:SpringCloud的核心組件及其工作原理

Eureka:各個(gè)服務(wù)啟動(dòng)時(shí),EurekaClient都會(huì)將服務(wù)注冊(cè)到EurekaServer,并且EurekaClient還可以反過(guò)來(lái)從EurekaServer拉取注冊(cè)表,從而知道其他服務(wù)在哪里;

Ribbon:服務(wù)間發(fā)起苦求的時(shí)候,基于Ribbon做負(fù)載均衡,從一個(gè)服務(wù)的多臺(tái)機(jī)器中選擇一臺(tái);

Feign:基于Feign的動(dòng)態(tài)代理機(jī)制,根據(jù)注解和選擇的機(jī)器,拼接苦求URL地址,發(fā)起苦求;

Hystrix:發(fā)起苦求是通過(guò)Hystrix的線程池來(lái)走的,不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,制止了服務(wù)雪崩的問(wèn)題;

Zuul:假設(shè)前端、移動(dòng)端要調(diào)用后端系統(tǒng),統(tǒng)一從Zuul網(wǎng)關(guān)進(jìn)入,由Zuul網(wǎng)關(guān)轉(zhuǎn)發(fā)苦求給對(duì)應(yīng)的服務(wù)。

問(wèn)題四:服務(wù)注冊(cè)和察覺(jué)是什么意思?SpringCloud如何實(shí)現(xiàn)?

當(dāng)我們開(kāi)頭一個(gè)工程時(shí),我們通常在屬性文件中舉行全體的配置。隨著越來(lái)越多的服務(wù)開(kāi)發(fā)和部署,添加和修改這些屬性變得更加繁雜。有些服務(wù)可能會(huì)下降,而某些位置可能會(huì)發(fā)生變化。手動(dòng)更改屬性可能會(huì)產(chǎn)生問(wèn)題。

Eureka服務(wù)注冊(cè)和察覺(jué)可以在這種處境下供給扶助。由于全體服務(wù)都在Eureka服務(wù)器上注冊(cè)并通過(guò)調(diào)用Eureka服務(wù)器完成查找,因此無(wú)需處理服務(wù)地點(diǎn)的任何更改和處理。

問(wèn)題五:負(fù)載平衡的意義什么?

在計(jì)算中,負(fù)載平衡可以改善跨計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈接,中央處理單元或磁盤(pán)驅(qū)動(dòng)器等多種計(jì)算資源的工作負(fù)載分布。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時(shí)間并制止任何單一資源的過(guò)載。

使用多個(gè)組件舉行負(fù)載平衡而不是單個(gè)組件可能會(huì)通過(guò)冗余來(lái)提高穩(wěn)當(dāng)性和可用性。負(fù)載平衡通常涉及專(zhuān)用軟件或硬件,例如多層交換機(jī)或域名系統(tǒng)服務(wù)器進(jìn)程。

問(wèn)題六:什么是NetflixFeign?它的優(yōu)點(diǎn)是什么?

Feign是受到Retrofit,JAXRS-2.0和WebSocket啟發(fā)的java客戶端聯(lián)編程序。Feign的第一個(gè)目標(biāo)是將約束分母的繁雜性統(tǒng)一到httpapis,而不考慮其穩(wěn)定性。在employee-consumer的例子中,我們使用了employee-producer使用REST模板公開(kāi)的REST服務(wù)。

但是我們務(wù)必編寫(xiě)大量代碼才能執(zhí)行以下步驟

①使用功能區(qū)舉行負(fù)載平衡。

②獲取服務(wù)實(shí)例,然后獲取根本URL。

③利用REST模板來(lái)使用服務(wù)。

Tomcat面試題匯總及答案

一、Tomcat的缺省端口是多少,怎么修改?

1)找到Tomcat目次下的conf文件夾

2)進(jìn)入conf文件夾里面找到server.xml文件

3)開(kāi)啟server.xml文件

4)在server.xml文件里面找到以下信息

connectorport=8080connectiontimeout=20000protocol=HTTP/1.1p=

redirectPort=8443uriEncoding=utf-8/

port=8080改成你想要的端口

二、tomcat有哪幾種Connector運(yùn)行模式(優(yōu)化)?

bio:傳統(tǒng)的JavaI/O操作,同步且阻塞IO。maxThreads=”150”//Tomcat使用線程來(lái)處理接收的每個(gè)苦求。這個(gè)值表示

Tomcat可創(chuàng)造的最大的線程數(shù)。默認(rèn)值200??梢愿鶕?jù)機(jī)器的時(shí)期性能和內(nèi)存大小調(diào)整,一般可以在400-500。最大可以在800左右。

minSpareThreads=”25”—Tomcat初始化時(shí)創(chuàng)造的線程數(shù)。默認(rèn)值4。假設(shè)當(dāng)前沒(méi)有空閑線程,且沒(méi)有超過(guò)maxThreads,一次性創(chuàng)造的空閑線程數(shù)量。

Tomcat初始化時(shí)創(chuàng)造的線程數(shù)量也由此值設(shè)置。maxSpareThreads=”75”–一旦創(chuàng)造的線程超過(guò)這個(gè)值,Tomcat就會(huì)關(guān)閉不再需要的socket線程。默認(rèn)值50。一旦創(chuàng)造的線程超過(guò)此數(shù)值,Tomcat會(huì)關(guān)閉不再需要的線程。線程數(shù)可以大致上用“同時(shí)在線人數(shù)每秒用戶操作次數(shù)系統(tǒng)平均操作時(shí)間”來(lái)計(jì)算。

acceptCount=”100”—-指定當(dāng)全體可以使用的處理苦求的線程數(shù)都被使用時(shí),可以放四處理隊(duì)列中的苦求數(shù),超過(guò)這個(gè)數(shù)的苦求將不予處理。默認(rèn)值10。假設(shè)當(dāng)前可用線程數(shù)為0,那么將苦求放入處理隊(duì)列中。這個(gè)值限定了苦求隊(duì)列的大小,超過(guò)這個(gè)數(shù)值的苦求將不予處理。connectionTimeout=”20000”–網(wǎng)絡(luò)連接超時(shí),默認(rèn)值20000,單位:毫秒。設(shè)置為0表示永不超時(shí),這樣設(shè)置有隱患的。通??稍O(shè)置為30000毫秒。

nio:JDK1.4開(kāi)頭支持,同步阻塞或同步非阻塞IO。指定使用NIO模型來(lái)采納HTTP苦求

protocol=”org.apache.coyote.http11.Http11NioProtocol”指定使用NIO模型來(lái)采納HTTP苦求。默認(rèn)是BlockingIO,配置為protocol=”HTTP/1.1”acceptorThreadCount=”2”使用NIO模型時(shí)接收線程的數(shù)目

aio(nio.2):JDK7開(kāi)頭支持,異步非阻塞IO。

apr:Tomcat將以JNI的形式調(diào)用ApacheHTTP服務(wù)器的核心動(dòng)態(tài)鏈接庫(kù)來(lái)處理文件讀取或網(wǎng)絡(luò)傳輸操作,從而大大地提高Tomcat對(duì)靜態(tài)文件的處理性能。

三、Tomcat有幾種部署方式?

1)直接把Web工程放在webapps下,Tomcat會(huì)自動(dòng)將其部署

2)在server.xml文件上配置節(jié)點(diǎn),設(shè)置相關(guān)的屬性即可

3)通過(guò)Catalina來(lái)舉行配置:進(jìn)入到conf\Catalina\localhost文件下,創(chuàng)造一個(gè)xml文件,該文件的名字就是站點(diǎn)的名字。

編寫(xiě)XML的方式來(lái)舉行設(shè)置。

四、tomcat容器是如何創(chuàng)造servlet類(lèi)實(shí)例?用到了什么原理?

當(dāng)容器啟動(dòng)時(shí),會(huì)讀取在webapps目次下全體的web應(yīng)用中的web.xml文件,然后對(duì)xml文件舉行解析,并讀取servlet注冊(cè)信息。然后,將每個(gè)應(yīng)用中注冊(cè)的servlet類(lèi)都舉行加載,并通過(guò)反射的方式實(shí)例化。

(有時(shí)候也是在第一次苦求時(shí)實(shí)例化)在servlet注冊(cè)時(shí)加上假設(shè)為正數(shù),那么在一開(kāi)頭就實(shí)例化,假設(shè)不寫(xiě)或?yàn)樨?fù)數(shù),那么第一次苦求實(shí)例化。

五、tomcat如何優(yōu)化?

1、優(yōu)化連接配置.這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,修改連接數(shù),關(guān)閉客戶端dns查詢。參數(shù)解釋?zhuān)?/p>

URIEncoding=”UTF-8″:使得tomcat可以解析含有中文名的文件的url,真便當(dāng),不像apache里還有搞個(gè)mod_encoding,還要手工編譯maxSpareThreads:假設(shè)空閑狀態(tài)的線程數(shù)多于設(shè)置的數(shù)目,那么將這些線程中止,裁減這個(gè)池中的線程總數(shù)。

minSpareThreads:最小備用線程數(shù),tomcat啟動(dòng)時(shí)的初始化的線程數(shù)。

enableLookups:這個(gè)成果和Apache中的HostnameLookups一樣,設(shè)為關(guān)閉。

connectionTimeout:connectionTimeout為網(wǎng)絡(luò)連接超時(shí)時(shí)間毫秒數(shù)。

maxThreads:maxThreadsTomcat使用線程來(lái)處理接收的每個(gè)苦求。這個(gè)值表示Tomcat可創(chuàng)造的最大的線程數(shù),即最大并發(fā)數(shù)。

acceptCount:acceptCount是當(dāng)線程數(shù)達(dá)成maxThreads后,后續(xù)苦求會(huì)被放入一個(gè)等待隊(duì)列,這個(gè)acceptCount是這個(gè)隊(duì)列的大小,假設(shè)這個(gè)隊(duì)列也滿了,就直接refuseconnectionmaxProcessors與minProcessors:

在Java中線程是程序運(yùn)行時(shí)的路徑,是在一個(gè)程序中與其它操縱線程無(wú)關(guān)的、能夠獨(dú)立運(yùn)行的代碼段。它們共享一致的地址空間。多線程扶助程序員寫(xiě)出CPU最大利用率的高效程序,使空閑時(shí)間保持最低,從而采納更多的苦求。

通常Windows是1000個(gè)左右,Linux是2000個(gè)左右。

10道python面試題

1、python下多線程的限制以及多進(jìn)程中傳遞參數(shù)的方式

python多線程有個(gè)全局解釋器鎖(globalinterpreterlock),這個(gè)鎖的意思是任一時(shí)間只能有一個(gè)線程使用解釋器,跟單cpu跑多個(gè)程序一個(gè)意思,大家都是輪著用的,這叫“并發(fā)”,不是“并行”。

多進(jìn)程間共享數(shù)據(jù),可以使用multiprocessing.Value和multiprocessing.Array。

2、什么是lambda函數(shù)?它有什么好處?

lambda函數(shù)是一個(gè)可以接收任意多個(gè)參數(shù)(包括可選參數(shù))并且返回單個(gè)表達(dá)式值的函數(shù)。lambda函數(shù)不能包含命令,它們所包含的表達(dá)式不能超過(guò)一個(gè)。不要試圖向lambda函數(shù)中塞入太多的東西;假設(shè)你需要更繁雜的東西,理應(yīng)定義一個(gè)普遍函數(shù),然后想讓它多長(zhǎng)就多長(zhǎng)。

3、Python是如何舉行類(lèi)型轉(zhuǎn)換的?

①函數(shù)描述

②int(x[,base])將x轉(zhuǎn)換為一個(gè)整數(shù)

③long(x[,base])將x轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù)

④float(x)將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)

⑤complex(real[,imag])創(chuàng)造一個(gè)復(fù)數(shù)

⑥str(x)將對(duì)象x轉(zhuǎn)換為字符串

⑦repr(x)將對(duì)象x轉(zhuǎn)換為表達(dá)式字符串

⑧eval(str)用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象

⑨t(yī)uple(s)將序列s轉(zhuǎn)換為一個(gè)元組

⑩list(s)將序列s轉(zhuǎn)換為一個(gè)列表

?chr(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符

?unichr(x)將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符

?ord(x)將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值

?hex(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串

?oct(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串

4、python多線程與多進(jìn)程的識(shí)別

在UNIX平臺(tái)上,當(dāng)某個(gè)進(jìn)程終結(jié)之后,該進(jìn)程需要被其父進(jìn)程調(diào)用wait,否那么進(jìn)程成為僵尸進(jìn)程(Zombie)。所以,有必要對(duì)每個(gè)Process對(duì)象調(diào)用join()方法(實(shí)際上等同于wait)。對(duì)于多線程來(lái)說(shuō),由于只有一個(gè)進(jìn)程,所以不存在此必要性。

多進(jìn)程理應(yīng)制止共享資源。在多線程中,我們可以對(duì)比輕易地共享資源,譬如使用全局變量或者傳遞參數(shù)。在多進(jìn)程處境下,由于每個(gè)進(jìn)程有自己獨(dú)立的內(nèi)存空間,以上方法并不適合。此時(shí)我們可以通過(guò)共享內(nèi)存和Manager的方法來(lái)共享資源。但這樣做提高了程序的繁雜度,并由于同步的需要而降低了程序的效率。

5、Python里面如何拷貝一個(gè)對(duì)象?

標(biāo)準(zhǔn)庫(kù)中的copy模塊供給了兩個(gè)方法來(lái)實(shí)現(xiàn)拷貝。一個(gè)方法是copy,它返回和參數(shù)包含內(nèi)容一樣的對(duì)象。使用deepcopy方法,對(duì)象中的屬性也被復(fù)制。

6、介紹一下except的用法和作用?

Python的except用來(lái)捕獲全體奇怪,由于Python里面的每次錯(cuò)誤都會(huì)拋出一個(gè)奇怪,所以每個(gè)程序的錯(cuò)誤都被當(dāng)作一個(gè)運(yùn)行時(shí)錯(cuò)誤。

7、Python中pass語(yǔ)句的作用是什么?

pass語(yǔ)句什么也不做,一般作為占位符或者創(chuàng)造占位程序,pass語(yǔ)句不會(huì)執(zhí)行任何操作。

8、Python解釋器種類(lèi)以及特點(diǎn)?

Python是一門(mén)解釋器語(yǔ)言,代碼想運(yùn)行,務(wù)必通過(guò)解釋器執(zhí)行,Python存在多種解釋器,分別基于不同語(yǔ)言開(kāi)發(fā),每個(gè)解釋器有不同的特點(diǎn),但都能正常運(yùn)行Python代碼,以下是常用的五種Python解釋器:

CPython:當(dāng)從Python官方網(wǎng)站下載并安裝好Python2.7后,就直接獲得了一個(gè)官方版本的解釋器:Cpython,這個(gè)解釋器是用C語(yǔ)言開(kāi)發(fā)的,所以叫CPython,在命名行下運(yùn)行python,就是啟動(dòng)CPython解釋器,CPython是使用最廣的Python解釋器。

IPython:IPython是基于CPython之上的一個(gè)交互式解釋器,也就是說(shuō),IPython只是在交互方式上有所鞏固,但是執(zhí)行Pyth

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論