亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>

      計算機行業(yè)IT面試題第1期

      了解哪些開源的rpc框架?dubbo的調(diào)用過程簡單說一下?

      1、RMI,遠程方法調(diào)用;2、Hessian,基于HTTP的遠程方法調(diào)用;3、Dubbo支持多種協(xié)議

      dubbo調(diào)用過程:

      角色:provider提供者,registry注冊中心,consumer消費者

      provider啟動:向registry注冊自己,能調(diào)用那些服務等

      consumer啟動:向registry注冊獲取provider列表,并進行本地緩存(這也就是當注冊中心掛掉,consumer還能進行遠程調(diào)用的原因)

      consumer進行遠程調(diào)用時:先根據(jù)接口進行代理找到最頂層Invoker,里面包含了可以調(diào)用的provider列表,也就是一堆invoker,通過loadBalance負載均衡選擇某一個具體的invoker,然后進行filter過濾,具體的invoker使用執(zhí)行的協(xié)議protocol發(fā)送數(shù)據(jù)到指定的provider,provider經(jīng)過相同的協(xié)議解析數(shù)據(jù),然后找到執(zhí)行的invoker,調(diào)用具體實現(xiàn)的方法返回執(zhí)行結(jié)果

      補充:dubbo底層調(diào)用原理

      shiro框架記住我的功能是怎么實現(xiàn)的??

      在執(zhí)行onSuccessfulLogin(token,info,logggedIn)方法中,有一個remeberSerializedIdentity()方法,該方法將用戶信息,構(gòu)造為一個SimpleCookie存放到request和response中實現(xiàn)記住我的功能

      tcp協(xié)議建立連接、釋放連接的過程。

      tcp是傳輸層協(xié)議,建立連接需要進行三次握手,釋放連接需要四次揮手

      建立連接:

      client發(fā)送SYN(seq=1000)到server 第一次握手

      server發(fā)送SYN+ACK(seq=2000,ack=1001=client發(fā)送的seq+1)到client 第二次握手

      client發(fā)送ACK(ack=2001=server發(fā)送的seq+1)到server 第三次握手

      釋放連接:

      client發(fā)送FIN(seq=5000)到server 第一次揮手 我沒有數(shù)據(jù)發(fā)送了,我想關(guān)閉連接了

      server發(fā)送ACK(seq=6000,ack=5001=client發(fā)送的seq+1)到client 第二次揮手 知道了,我還沒準備好

      server發(fā)送FIN(seq=6001,ack=5001=client發(fā)送的seq+1)到client 第三次揮手 我也可以關(guān)閉連接了

      client發(fā)送ACK(seq=5001=自己第一次發(fā)送的seq+1,ack=6002=server發(fā)送的seq+1)到server 第四次揮手,知道了拜拜。

      http、https的區(qū)別?

      https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費。

      http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議

      http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443。

      http的連接很簡單,是無狀態(tài)的

      HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議 要比http協(xié)議安全

      https加密的機制了解過嗎?

      采用對稱加密+非對稱加密的方式:

      服務器持有公鑰A,私鑰A

      1.服務器將公鑰A通過明文方式發(fā)送給瀏覽器

      2.瀏覽器生成對稱加密的秘鑰C,使用公鑰A加密后發(fā)送給服務器

      3.服務器使用私鑰A將拿到的密文解密成秘鑰C

      4.之后瀏覽器跟服務器之間的數(shù)據(jù)傳遞都使用秘鑰C加解密方式進行傳輸

      看著好像沒問題,請看下面的流程

      1.服務器將公鑰A通過明文方式發(fā)送給瀏覽器

      中間人劫持到公鑰A,中間人有公鑰B和私鑰B,他將公鑰B傳送給瀏覽器,自己保留公鑰A

      2.瀏覽器生成對稱加密的秘鑰C,使用公鑰B加密后發(fā)送給服務器

      中間人拿到瀏覽器生成的秘鑰C的密文,使用自己的私鑰B進行解密,拿到了密鑰C,他再使用公鑰A加密密鑰C,發(fā)送到服務器

      3.服務器使用私鑰A將拿到的密文解密成秘鑰C

      4.之后瀏覽器跟服務器之間的數(shù)據(jù)傳遞都使用秘鑰C加解密方式進行傳輸

      到這里瀏覽器,中間人,服務器都有了秘鑰C,意思是瀏覽器與服務器進行數(shù)據(jù)交互,中間人都可以解析成明文

      這里就引入了CA證書,CA證書包含了網(wǎng)站信息,公鑰信息,服務器傳遞給瀏覽器的就是證書

      補充:https加密原理

      創(chuàng)建線程有哪幾種方式?

      1.直接繼承Thread

      2.實現(xiàn)Runnable接口

      2.實現(xiàn)Callable接口

      Runnable和Callable創(chuàng)建線程有什么區(qū)別?

      Runnable:沒有返回值,外面不能捕獲到異常

      Callable:有返回值,外面可以捕獲到異常

      線程池哪幾種?分別說一下?

      corePoolSize:核心線程數(shù),如果他們創(chuàng)建了,它們會一直存在于線程池中,直到線程池關(guān)閉

      maximunPoolSize:線程池可創(chuàng)建的最大線程數(shù)(核心線程與輔線程總和),這個值必須大于corePoolSize的值,否則會拋IllegalArgumentException

      keepAliveTime:輔線程的空閑等待時間,一個輔線程等待多少時間還沒有任務給它處理,它就被銷毀

      unit:keepAliveTime的單位(天,小時,分鐘,秒,毫秒等等)

      workQueue:任務等待隊列,如果需要處理的任務大于線程池中的線程數(shù),未處理的任務會暫存在任務隊列(ps:不一定會保存任務到隊列,需要根據(jù)當前任務隊列的類型來判斷,后面詳細講解)

      threadFactory:線程創(chuàng)建工廠,一般使用默認(Executors.defaultThreadFactory())即可,可以自定義

      handler:拒接策略,如果線程池中線程都在處理任務,任務隊列中保存的任務也達到最大值,不能再接收任務了,如何拒絕

      補充:java之ThreadPoolExecutor

      Java里面的鎖有哪些?

      樂觀說:cas

      悲觀鎖:每次讀寫數(shù)據(jù)都怕被別人修改,就加上鎖

      自旋鎖:如果別的線程占用了資源,自旋一段時間,不直接進入阻塞,自旋期間獲取到資源就不用進行上下文切換,提高效率

      可重入鎖:線程A占用了資源B,線程A需要再訪問資源B可以直接訪問,可重入

      公平鎖:資源等待隊列,誰先來,下次先把資源交給誰

      非公平鎖:隨機分配資源給某個線程,可能導致某個線程一直分配不到資源,饑餓等待

      補充:java中的鎖總結(jié)

      說說volatile 關(guān)鍵字的作用?

      保證了可見性,有序性(禁止指令重排)

      一般的變量在使用時,線程會將變量的值拷貝一份到自己的工作內(nèi)存,這就會導致有的線程更新了數(shù)據(jù),還未刷新到主內(nèi)存,別的線程使用的還是原來的舊數(shù)據(jù),導致程序的最終值與期望值相差很大,使用volatile關(guān)鍵之修飾的變量,線程每次使用變量時,都會直接到主內(nèi)存中取,保證了可見性,一個線程對該變量的修改,對其他線程來說是立即可見的

      mysql有哪些鎖?

      行鎖(Record Locks)

      間隙鎖(Gap Locks)

      臨鍵鎖(Next-key Locks)

      共享鎖/排他鎖(Shared and Exclusive Locks)

      意向共享鎖/意向排他鎖(Intention Shared and Exclusive Locks)

      插入意向鎖(Insert Intention Locks)

      自增鎖(Auto-inc Locks)

      補充:mysql中的鎖

      select for update是表鎖還是行鎖?

      如果查詢條件用了索引/主鍵,那么select ….. for update就會進行行鎖。

      如果是普通字段(沒有索引/主鍵),那么select ….. for update就會進行鎖表。

      加了索引一定會走索引嗎?索引失效的情況有哪些?

      不一定會走索引,有很多索引失效的情況:

      1.like后匹配,例如’%張’

      2.組合索引,沒有按照順序使用,例如age,name,address, 查詢時直接使用name

      3.如果字段為字符串類型,一定要加引號,否則存在隱式轉(zhuǎn)換

      4.對字段進行了計算或者使用函數(shù)的,例如left(name,2) = ‘xxx’

      補充:mysql索引失效的幾種情況

      如果我想要強制走某個索引,能實現(xiàn)嗎?

      使用force index關(guān)鍵字

      select*from table force index(index1,index2)

      說一下Spring bean的生命周期?bean什么時候會被銷毀呢?

      生命周期:

      1.實例化

      2.設置屬性

      3.如果實現(xiàn)了BeanNameware就調(diào)用setBeanName

      4.如果實現(xiàn)了BeanFactoryAware就調(diào)用setBeanFactory

      5.如果實現(xiàn)了ApplicationContextAware就調(diào)用setApplicationContext

      6.如果實現(xiàn)了BeanPostProcessor就調(diào)用postProcessorBeforeInitalization

      7.如果實現(xiàn)了InitailzingBean方法就調(diào)用afterPropertiesSet

      8.如果實現(xiàn)了BeanPostProcessor就調(diào)用postProcessorAfterInitalization

      9.如果實現(xiàn)了DisposableBean就調(diào)用destroy方法

      什么時候銷毀:

      singleton的會存放到上下文銷毀時,才會銷毀

      prototype 又叫多例模式,用的時候就new一下,用完就沒有了。

      session 存在這一次會話 session 中,session沒有過期它就一直存在,session過期后它就沒了。

      request 存在這一次請求中,請求結(jié)束了它就結(jié)束。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月16日 21:17
      下一篇 2022年6月16日 21:18

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息