版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——IT面試筆試題目及答案參考IT面試筆試題目及答案參考
IT面試筆試題目難嗎?求職面試時,面試官一般都會問你一些問題,也可能是通過問卷的形式提問,怎么回復才是最好的呢?這里給大家共享一些IT面試筆試題目,夢想對大家有所扶助。
springcloud面試題匯總及答案
問題一:說一下springcloud?
SpringCloud是一系列框架的有序集合。它利用SpringBoot的開發(fā)便利性高明地簡化了分布式系統(tǒng)根基設施的開發(fā),如服務察覺注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用SpringBoot的開發(fā)風格做到一鍵啟動和部署。
SpringCloud是將目前各家公司開發(fā)的對比成熟、經(jīng)得起實際考驗的服務框架組合起來,通過SpringBoot風格舉行再封裝屏蔽掉了繁雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡樸易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
問題二:使用SpringCloud有什么優(yōu)勢?
使用SpringBoot開發(fā)分布式微服務時,我們面臨以下問題:
①與分布式系統(tǒng)相關(guān)的繁雜性-這種開銷包括網(wǎng)絡問題,延遲開銷,帶寬問題,安好問題。
②服務察覺-服務察覺工具管理群集中的流程和服務如何查找和彼此交談。它涉及一個服務目次,在該目次中注冊服務,然后能夠查找并連接到該目次中的服務。
③冗余-分布式系統(tǒng)中的冗余問題。
④負載平衡--負載平衡改善跨多個計算資源的工作負荷,諸如計算機,計算機集群,網(wǎng)絡鏈路,中央處理單元,或磁盤驅(qū)動器的分布。
⑤性能-問題由于各種運營開銷導致的性能問題。
⑥部署繁雜性-Devops技能的要求。
問題三:SpringCloud的核心組件及其工作原理
Eureka:各個服務啟動時,EurekaClient都會將服務注冊到EurekaServer,并且EurekaClient還可以反過來從EurekaServer拉取注冊表,從而知道其他服務在哪里;
Ribbon:服務間發(fā)起苦求的時候,基于Ribbon做負載均衡,從一個服務的多臺機器中選擇一臺;
Feign:基于Feign的動態(tài)代理機制,根據(jù)注解和選擇的機器,拼接苦求URL地址,發(fā)起苦求;
Hystrix:發(fā)起苦求是通過Hystrix的線程池來走的,不同的服務走不同的線程池,實現(xiàn)了不同服務調(diào)用的隔離,制止了服務雪崩的問題;
Zuul:假設前端、移動端要調(diào)用后端系統(tǒng),統(tǒng)一從Zuul網(wǎng)關(guān)進入,由Zuul網(wǎng)關(guān)轉(zhuǎn)發(fā)苦求給對應的服務。
問題四:服務注冊和察覺是什么意思?SpringCloud如何實現(xiàn)?
當我們開頭一個工程時,我們通常在屬性文件中舉行全體的配置。隨著越來越多的服務開發(fā)和部署,添加和修改這些屬性變得更加繁雜。有些服務可能會下降,而某些位置可能會發(fā)生變化。手動更改屬性可能會產(chǎn)生問題。
Eureka服務注冊和察覺可以在這種處境下供給扶助。由于全體服務都在Eureka服務器上注冊并通過調(diào)用Eureka服務器完成查找,因此無需處理服務地點的任何更改和處理。
問題五:負載平衡的意義什么?
在計算中,負載平衡可以改善跨計算機,計算機集群,網(wǎng)絡鏈接,中央處理單元或磁盤驅(qū)動器等多種計算資源的工作負載分布。負載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應時間并制止任何單一資源的過載。
使用多個組件舉行負載平衡而不是單個組件可能會通過冗余來提高穩(wěn)當性和可用性。負載平衡通常涉及專用軟件或硬件,例如多層交換機或域名系統(tǒng)服務器進程。
問題六:什么是NetflixFeign?它的優(yōu)點是什么?
Feign是受到Retrofit,JAXRS-2.0和WebSocket啟發(fā)的java客戶端聯(lián)編程序。Feign的第一個目標是將約束分母的繁雜性統(tǒng)一到httpapis,而不考慮其穩(wěn)定性。在employee-consumer的例子中,我們使用了employee-producer使用REST模板公開的REST服務。
但是我們務必編寫大量代碼才能執(zhí)行以下步驟
①使用功能區(qū)舉行負載平衡。
②獲取服務實例,然后獲取根本URL。
③利用REST模板來使用服務。
Tomcat面試題匯總及答案
一、Tomcat的缺省端口是多少,怎么修改?
1)找到Tomcat目次下的conf文件夾
2)進入conf文件夾里面找到server.xml文件
3)開啟server.xml文件
4)在server.xml文件里面找到以下信息
connectorport=8080connectiontimeout=20000protocol=HTTP/1.1p=
redirectPort=8443uriEncoding=utf-8/
port=8080改成你想要的端口
二、tomcat有哪幾種Connector運行模式(優(yōu)化)?
bio:傳統(tǒng)的JavaI/O操作,同步且阻塞IO。maxThreads=”150”//Tomcat使用線程來處理接收的每個苦求。這個值表示
Tomcat可創(chuàng)造的最大的線程數(shù)。默認值200??梢愿鶕?jù)機器的時期性能和內(nèi)存大小調(diào)整,一般可以在400-500。最大可以在800左右。
minSpareThreads=”25”—Tomcat初始化時創(chuàng)造的線程數(shù)。默認值4。假設當前沒有空閑線程,且沒有超過maxThreads,一次性創(chuàng)造的空閑線程數(shù)量。
Tomcat初始化時創(chuàng)造的線程數(shù)量也由此值設置。maxSpareThreads=”75”–一旦創(chuàng)造的線程超過這個值,Tomcat就會關(guān)閉不再需要的socket線程。默認值50。一旦創(chuàng)造的線程超過此數(shù)值,Tomcat會關(guān)閉不再需要的線程。線程數(shù)可以大致上用“同時在線人數(shù)每秒用戶操作次數(shù)系統(tǒng)平均操作時間”來計算。
acceptCount=”100”—-指定當全體可以使用的處理苦求的線程數(shù)都被使用時,可以放四處理隊列中的苦求數(shù),超過這個數(shù)的苦求將不予處理。默認值10。假設當前可用線程數(shù)為0,那么將苦求放入處理隊列中。這個值限定了苦求隊列的大小,超過這個數(shù)值的苦求將不予處理。connectionTimeout=”20000”–網(wǎng)絡連接超時,默認值20000,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通??稍O置為30000毫秒。
nio:JDK1.4開頭支持,同步阻塞或同步非阻塞IO。指定使用NIO模型來采納HTTP苦求
protocol=”org.apache.coyote.http11.Http11NioProtocol”指定使用NIO模型來采納HTTP苦求。默認是BlockingIO,配置為protocol=”HTTP/1.1”acceptorThreadCount=”2”使用NIO模型時接收線程的數(shù)目
aio(nio.2):JDK7開頭支持,異步非阻塞IO。
apr:Tomcat將以JNI的形式調(diào)用ApacheHTTP服務器的核心動態(tài)鏈接庫來處理文件讀取或網(wǎng)絡傳輸操作,從而大大地提高Tomcat對靜態(tài)文件的處理性能。
三、Tomcat有幾種部署方式?
1)直接把Web工程放在webapps下,Tomcat會自動將其部署
2)在server.xml文件上配置節(jié)點,設置相關(guān)的屬性即可
3)通過Catalina來舉行配置:進入到conf\Catalina\localhost文件下,創(chuàng)造一個xml文件,該文件的名字就是站點的名字。
編寫XML的方式來舉行設置。
四、tomcat容器是如何創(chuàng)造servlet類實例?用到了什么原理?
當容器啟動時,會讀取在webapps目次下全體的web應用中的web.xml文件,然后對xml文件舉行解析,并讀取servlet注冊信息。然后,將每個應用中注冊的servlet類都舉行加載,并通過反射的方式實例化。
(有時候也是在第一次苦求時實例化)在servlet注冊時加上假設為正數(shù),那么在一開頭就實例化,假設不寫或為負數(shù),那么第一次苦求實例化。
五、tomcat如何優(yōu)化?
1、優(yōu)化連接配置.這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,修改連接數(shù),關(guān)閉客戶端dns查詢。參數(shù)解釋:
URIEncoding=”UTF-8″:使得tomcat可以解析含有中文名的文件的url,真便當,不像apache里還有搞個mod_encoding,還要手工編譯maxSpareThreads:假設空閑狀態(tài)的線程數(shù)多于設置的數(shù)目,那么將這些線程中止,裁減這個池中的線程總數(shù)。
minSpareThreads:最小備用線程數(shù),tomcat啟動時的初始化的線程數(shù)。
enableLookups:這個成果和Apache中的HostnameLookups一樣,設為關(guān)閉。
connectionTimeout:connectionTimeout為網(wǎng)絡連接超時時間毫秒數(shù)。
maxThreads:maxThreadsTomcat使用線程來處理接收的每個苦求。這個值表示Tomcat可創(chuàng)造的最大的線程數(shù),即最大并發(fā)數(shù)。
acceptCount:acceptCount是當線程數(shù)達成maxThreads后,后續(xù)苦求會被放入一個等待隊列,這個acceptCount是這個隊列的大小,假設這個隊列也滿了,就直接refuseconnectionmaxProcessors與minProcessors:
在Java中線程是程序運行時的路徑,是在一個程序中與其它操縱線程無關(guān)的、能夠獨立運行的代碼段。它們共享一致的地址空間。多線程扶助程序員寫出CPU最大利用率的高效程序,使空閑時間保持最低,從而采納更多的苦求。
通常Windows是1000個左右,Linux是2000個左右。
10道python面試題
1、python下多線程的限制以及多進程中傳遞參數(shù)的方式
python多線程有個全局解釋器鎖(globalinterpreterlock),這個鎖的意思是任一時間只能有一個線程使用解釋器,跟單cpu跑多個程序一個意思,大家都是輪著用的,這叫“并發(fā)”,不是“并行”。
多進程間共享數(shù)據(jù),可以使用multiprocessing.Value和multiprocessing.Array。
2、什么是lambda函數(shù)?它有什么好處?
lambda函數(shù)是一個可以接收任意多個參數(shù)(包括可選參數(shù))并且返回單個表達式值的函數(shù)。lambda函數(shù)不能包含命令,它們所包含的表達式不能超過一個。不要試圖向lambda函數(shù)中塞入太多的東西;假設你需要更繁雜的東西,理應定義一個普遍函數(shù),然后想讓它多長就多長。
3、Python是如何舉行類型轉(zhuǎn)換的?
①函數(shù)描述
②int(x[,base])將x轉(zhuǎn)換為一個整數(shù)
③long(x[,base])將x轉(zhuǎn)換為一個長整數(shù)
④float(x)將x轉(zhuǎn)換到一個浮點數(shù)
⑤complex(real[,imag])創(chuàng)造一個復數(shù)
⑥str(x)將對象x轉(zhuǎn)換為字符串
⑦repr(x)將對象x轉(zhuǎn)換為表達式字符串
⑧eval(str)用來計算在字符串中的有效Python表達式,并返回一個對象
⑨t(yī)uple(s)將序列s轉(zhuǎn)換為一個元組
⑩list(s)將序列s轉(zhuǎn)換為一個列表
?chr(x)將一個整數(shù)轉(zhuǎn)換為一個字符
?unichr(x)將一個整數(shù)轉(zhuǎn)換為Unicode字符
?ord(x)將一個字符轉(zhuǎn)換為它的整數(shù)值
?hex(x)將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串
?oct(x)將一個整數(shù)轉(zhuǎn)換為一個八進制字符串
4、python多線程與多進程的識別
在UNIX平臺上,當某個進程終結(jié)之后,該進程需要被其父進程調(diào)用wait,否那么進程成為僵尸進程(Zombie)。所以,有必要對每個Process對象調(diào)用join()方法(實際上等同于wait)。對于多線程來說,由于只有一個進程,所以不存在此必要性。
多進程理應制止共享資源。在多線程中,我們可以對比輕易地共享資源,譬如使用全局變量或者傳遞參數(shù)。在多進程處境下,由于每個進程有自己獨立的內(nèi)存空間,以上方法并不適合。此時我們可以通過共享內(nèi)存和Manager的方法來共享資源。但這樣做提高了程序的繁雜度,并由于同步的需要而降低了程序的效率。
5、Python里面如何拷貝一個對象?
標準庫中的copy模塊供給了兩個方法來實現(xiàn)拷貝。一個方法是copy,它返回和參數(shù)包含內(nèi)容一樣的對象。使用deepcopy方法,對象中的屬性也被復制。
6、介紹一下except的用法和作用?
Python的except用來捕獲全體奇怪,由于Python里面的每次錯誤都會拋出一個奇怪,所以每個程序的錯誤都被當作一個運行時錯誤。
7、Python中pass語句的作用是什么?
pass語句什么也不做,一般作為占位符或者創(chuàng)造占位程序,pass語句不會執(zhí)行任何操作。
8、Python解釋器種類以及特點?
Python是一門解釋器語言,代碼想運行,務必通過解釋器執(zhí)行,Python存在多種解釋器,分別基于不同語言開發(fā),每個解釋器有不同的特點,但都能正常運行Python代碼,以下是常用的五種Python解釋器:
CPython:當從Python官方網(wǎng)站下載并安裝好Python2.7后,就直接獲得了一個官方版本的解釋器:Cpython,這個解釋器是用C語言開發(fā)的,所以叫CPython,在命名行下運行python,就是啟動CPython解釋器,CPython是使用最廣的Python解釋器。
IPython:IPython是基于CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所鞏固,但是執(zhí)行Pyth
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度股權(quán)轉(zhuǎn)讓合同標的與對價2篇
- 2024版二手房預約買賣合同模板2篇
- 2024年度金融科技合作開發(fā)合同范本2篇
- 2024年度泵房租賃及運營合同6篇
- 2024年度全職媽媽離婚前知識產(chǎn)權(quán)保護合同2篇
- 2024年汽車修理廠合伙經(jīng)營市場拓展協(xié)議3篇
- 分伙協(xié)議合同范例
- 養(yǎng)殖企業(yè)入股合同范例
- 2024年收購環(huán)??萍计髽I(yè)股權(quán)并共同研發(fā)清潔能源協(xié)議3篇
- 開發(fā)商房子買賣合同范例
- 三基考試題庫與答案
- 2024年廣東省2024屆高三二模英語試卷(含標準答案)
- 全飛秒激光近視手術(shù)
- 2024年制鞋工專業(yè)知識考試(重點)題庫(含答案)
- 2023-2024學年廣州大附屬中學中考一模物理試題含解析
- 綠化養(yǎng)護工作日記錄表
- 2024美的在線測評題庫答案
- 2024版高考數(shù)學二輪復習:解析幾何問題的方法技巧
- 輿情監(jiān)測服務方案
- 北京市海淀區(qū)2023-2024學年八年級上學期期末英語試卷
- 果品類原料的烹調(diào)應用課件
評論
0/150
提交評論