計算機網(wǎng)絡方面的面試題目
面試過程中,面試官會向應聘者發(fā)問,而應聘者的回答將成為面試官考慮是否接受他的重要依據(jù)。下面小編給大家?guī)碛嬎銠C網(wǎng)絡方面的面試題目參考,希望能幫助到大家!
python面試題
1、python下多線程的限制以及多進程中傳遞參數(shù)的方式
python多線程有個全局解釋器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個線程使用解釋器,跟單cpu跑多個程序一個意思,大家都是輪著用的,這叫“并發(fā)”,不是“并行”。
多進程間共享數(shù)據(jù),可以使用 multiprocessing.Value和multiprocessing.Array。
2、什么是lambda函數(shù)?它有什么好處?
lambda 函數(shù)是一個可以接收任意多個參數(shù)(包括可選參數(shù))并且返回單個表達式值的函數(shù)。lambda 函數(shù)不能包含命令,它們所包含的表達式不能超過一個。不要試圖向lambda 函數(shù)中塞入太多的東西;如果你需要更復雜的東西,應該定義一個普通函數(shù),然后想讓它多長就多長。
3、Python是如何進行類型轉換的?
①函數(shù)描述
② int(x [,base ]) 將x轉換為一個整數(shù)
③long(x [,base ]) 將x轉換為一個長整數(shù)
④float(x ) 將x轉換到一個浮點數(shù)
⑤complex(real [,imag ]) 創(chuàng)建一個復數(shù)
⑥str(x ) 將對象 x 轉換為字符串
⑦repr(x ) 將對象 x 轉換為表達式字符串
⑧eval(str ) 用來計算在字符串中的有效Python表達式,并返回一個對象
⑨t(yī)uple(s ) 將序列 s 轉換為一個元組
⑩list(s ) 將序列 s 轉換為一個列表
?chr(x ) 將一個整數(shù)轉換為一個字符
?unichr(x ) 將一個整數(shù)轉換為Unicode字符
?ord(x ) 將一個字符轉換為它的整數(shù)值
?hex(x ) 將一個整數(shù)轉換為一個十六進制字符串
?oct(x ) 將一個整數(shù)轉換為一個八進制字符串
4、python多線程與多進程的區(qū)別
在UNIX平臺上,當某個進程終結之后,該進程需要被其父進程調用wait,否則進程成為僵尸進程(Zombie)。所以,有必要對每個Process對象調用join()方法 (實際上等同于wait)。對于多線程來說,由于只有一個進程,所以不存在此必要性。
多進程應該避免共享資源。在多線程中,我們可以比較容易地共享資源,比如使用全局變量或者傳遞參數(shù)。在多進程情況下,由于每個進程有自己獨立的內存空間,以上方法并不合適。此時我們可以通過共享內存和Manager的方法來共享資源。但這樣做提高了程序的復雜度,并因為同步的需要而降低了程序的效率。
5、Python里面如何拷貝一個對象?
標準庫中的copy模塊提供了兩個方法來實現(xiàn)拷貝。一個方法是copy,它返回和參數(shù)包含內容一樣的對象。使用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í)行Python代碼的功能和CPython是完全一樣的,好比很多國產(chǎn)瀏覽器雖然外觀不同,但內核其實是調用了IE。
PyPy:PyPy是另一個Python解釋器,它的目標是執(zhí)行速度,PyPy采用JIT技術,對Python代進行動態(tài)編譯,所以可以顯著提高Python代碼的執(zhí)行速度。
Jython:Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。
IronPython:IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼。
在Python的解釋器中,使用廣泛的是CPython,對于Python的編譯,除了可以采用以上解釋器進行編譯外,技術高超的開發(fā)者還可以按照自己的需求自行編寫Python解釋器來執(zhí)行Python代碼,十分的方便!
9、列舉布爾值為False的常見值?
0, [] , () , {} , '' , False , None
10、字符串、列表、元組、字典每個常用的5個方法?
字符串:repleace,strip,split,reverse,upper,lower,join.....
列表:append,pop,,remove,sort,count,index.....
元組:index,count,__len__(),__dir__()
字典:get,keys,values,pop,popitems,clear,,items.....
Tomcat面試題匯總及答案
一、Tomcat 的缺省端口是多少,怎么修改?
1)找到 Tomcat 目錄下的 conf 文件夾
2)進入 conf 文件夾里面找到 server.xml 文件
3)打開 server.xml 文件
4)在 server.xml 文件里面找到下列信息
<connector p=""
redirectPort="8443" uriEncoding="utf-8"/>
port="8080"改成你想要的端口
二、tomcat 有哪幾種 Connector 運行模式(優(yōu)化)?
bio:傳統(tǒng)的 Java I/O 操作,同步且阻塞 IO。maxThreads=”150”//Tomcat 使用線程來處理接收的每個請求。這個值表示
Tomcat 可創(chuàng)建的最大的線程數(shù)。默認值 200??梢愿鶕?jù)機器的時期性能和內存大小調整,一般可以在 400-500。最大可以在 800 左右。
minSpareThreads=”25”—Tomcat 初始化時創(chuàng)建的線程數(shù)。默認值 4。如果當前沒有空閑線程,且沒有超過 maxThreads,一次性創(chuàng)建的空閑線程數(shù)量。
Tomcat 初始化時創(chuàng)建的線程數(shù)量也由此值設置。maxSpareThreads=”75”–一旦創(chuàng)建的線程超過這個值,Tomcat 就會關閉不再需要的 socket 線程。默認值 50。一旦創(chuàng)建的線程超過此數(shù)值,Tomcat 會關閉不再需要的線程。線程數(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 的形式調用 Apache HTTP 服務器的核心動態(tài)鏈接庫來處理文件讀取或網(wǎng)絡傳輸操作,從而大大地 提高 Tomcat 對靜態(tài)文件的處理性能。
三、Tomcat 有幾種部署方式?
1)直接把 Web 項目放在 webapps 下,Tomcat 會自動將其部署
2)在 server.xml 文件上配置節(jié)點,設置相關的屬性即可
3)通過 Catalina 來進行配置:進入到 conf\Catalina\localhost 文件下,創(chuàng)建一個xml 文件,該文件的名字就是站點的名字。
編寫 XML 的方式來進行設置。
四、tomcat 容器是如何創(chuàng)建 servlet 類實例?用到了什么原理?
當容器啟動時,會讀取在 webapps 目錄下所有的 web 應用中的 web.xml 文件,然后對 xml 文件進行解析,并讀取 servlet 注冊信息。然后,將每個應用中注冊的 servlet 類都進行加載, 并通過反射的方式實例化。
(有時候也是在第一次請求時實例化)在 servlet 注冊時加上如果為正數(shù),則在一開始就實例化,如果不寫或為負數(shù),則第一次請求實例化。
spring cloud面試題
問題一:說一下spring cloud?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。
Spring Cloud是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
問題二:使用Spring Cloud有什么優(yōu)勢?
使用Spring Boot開發(fā)分布式微服務時,我們面臨以下問題:
①與分布式系統(tǒng)相關的復雜性-這種開銷包括網(wǎng)絡問題,延遲開銷,帶寬問題,安全問題。
②服務發(fā)現(xiàn)-服務發(fā)現(xiàn)工具管理群集中的流程和服務如何查找和互相交談。它涉及一個服務目錄,在該目錄中注冊服務,然后能夠查找并連接到該目錄中的服務。
③冗余-分布式系統(tǒng)中的冗余問題。
④負載平衡 --負載平衡改善跨多個計算資源的工作負荷,諸如計算機,計算機集群,網(wǎng)絡鏈路,中央處理單元,或磁盤驅動器的分布。
⑤性能-問題 由于各種運營開銷導致的性能問題。
⑥部署復雜性-Devops技能的要求。
問題三:Spring Cloud的核心組件及其工作原理
Eureka:各個服務啟動時,Eureka Client都會將服務注冊到Eureka Server,并且Eureka Client還可以反過來從Eureka Server拉取注冊表,從而知道其他服務在哪里;
Ribbon:服務間發(fā)起請求的時候,基于Ribbon做負載均衡,從一個服務的多臺機器中選擇一臺;
Feign:基于Feign的動態(tài)代理機制,根據(jù)注解和選擇的機器,拼接請求URL地址,發(fā)起請求;
Hystrix:發(fā)起請求是通過Hystrix的線程池來走的,不同的服務走不同的線程池,實現(xiàn)了不同服務調用的隔離,避免了服務雪崩的問題;
Zuul:如果前端、移動端要調用后端系統(tǒng),統(tǒng)一從Zuul網(wǎng)關進入,由Zuul網(wǎng)關轉發(fā)請求給對應的服務。
問題四:服務注冊和發(fā)現(xiàn)是什么意思?Spring Cloud如何實現(xiàn)?
當我們開始一個項目時,我們通常在屬性文件中進行所有的配置。隨著越來越多的服務開發(fā)和部署,添加和修改這些屬性變得更加復雜。有些服務可能會下降,而某些位置可能會發(fā)生變化。手動更改屬性可能會產(chǎn)生問題。
Eureka服務注冊和發(fā)現(xiàn)可以在這種情況下提供幫助。由于所有服務都在Eureka服務器上注冊并通過調用Eureka服務器完成查找,因此無需處理服務地點的任何更改和處理。
問題五:負載平衡的意義什么?
在計算中,負載平衡可以改善跨計算機,計算機集群,網(wǎng)絡鏈接,中央處理單元或磁盤驅動器等多種計算資源的工作負載分布。負載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應時間并避免任何單一資源的過載。
使用多個組件進行負載平衡而不是單個組件可能會通過冗余來提高可靠性和可用性。負載平衡通常涉及專用軟件或硬件,例如多層交換機或域名系統(tǒng)服務器進程。
問題六:什么是Netflix Feign?它的優(yōu)點是什么?
Feign是受到Retrofit,JAXRS-2.0和WebSocket啟發(fā)的java客戶端聯(lián)編程序。Feign的第一個目標是將約束分母的復雜性統(tǒng)一到http apis,而不考慮其穩(wěn)定性。在employee-consumer的例子中,我們使用了employee-producer使用REST模板公開的REST服務。
但是我們必須編寫大量代碼才能執(zhí)行以下步驟
①使用功能區(qū)進行負載平衡。
②獲取服務實例,然后獲取基本URL。
③利用REST模板來使用服務。
計算機網(wǎng)絡方面的面試題目相關文章: