欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

電信智科-大數(shù)據(jù)開發(fā)運營工程師(成都base)面經(jīng)

電信智科(中國電信股份有限公司數(shù)字智能科技分公司)-大數(shù)據(jù)開發(fā)運營工程師面經(jīng)

? 9月1日投的,15日筆試,26日一面。這個公司是在國聘行動上投遞的,在成都就這一個崗位,本來沒抱希望投的,結(jié)果沒想到還給面試了。面試在騰訊會議上的,一共25分鐘左右,比較短;感覺有點涼,像kpi面,我準備了kafka的很多八股,結(jié)果一個沒問,一直在懟網(wǎng)絡(luò),感覺有點像kpi面試。

? 以下回答絕大部分是GPT4.0回答的,我看著沒太大問題就貼上來了,僅供參考,可能有些錯誤。

1.前后端分離的項目中,前端往后端發(fā)送http請求過程中發(fā)生了什么?

2.http基于TCP這個全雙工的協(xié)議,為什么基本上都是客戶端請求服務(wù)端,服務(wù)端返回數(shù)據(jù)這種半雙工的模式呢?

HTTP 是一個請求-響應(yīng)協(xié)議。雖然它基于 TCP,這是一個全雙工的協(xié)議,但 HTTP 本身是設(shè)計為一個簡單的、無狀態(tài)的協(xié)議,主要用于文檔的檢索和信息的發(fā)布。因此,HTTP 的主要模式是客戶端發(fā)送一個請求,服務(wù)器返回一個響應(yīng)。

現(xiàn)在我們詳細分析這個問題:

  1. HTTP的設(shè)計初衷:HTTP 最初的設(shè)計是為了文檔的檢索和信息的發(fā)布,它并不是為雙向?qū)崟r通信設(shè)計的。所以,盡管 TCP 支持全雙工模式,HTTP 在設(shè)計時選擇了請求-響應(yīng)模型,即半雙工模式。
  2. 無狀態(tài)性:HTTP 是無狀態(tài)的。每一個請求-響應(yīng)對都是獨立的。這簡化了服務(wù)端的設(shè)計和實現(xiàn),因為服務(wù)端不需要維護與客戶端之間的長時間連接狀態(tài)。
  3. 長輪詢和服務(wù)器推送:在 HTTP/1.1 下,盡管主要的模式是請求-響應(yīng),但也可以通過技巧如長輪詢來模擬服務(wù)器向客戶端的推送。但這并不是真正的全雙工通信。
  4. HTTP/2 的服務(wù)器推送:HTTP/2 引入了服務(wù)器推送功能。這允許服務(wù)器在沒有客戶端明確請求的情況下發(fā)送數(shù)據(jù)。然而,這仍然是在請求-響應(yīng)模型的上下文中,只是提供了更高效的方式來預(yù)先推送可能需要的資源。
  5. WebSocket:WebSocket 是一個不同的協(xié)議,盡管它從 HTTP 升級而來。它提供了真正的全雙工通信能力,允許服務(wù)器和客戶端之間的雙向?qū)崟r通信。與 HTTP 相比,WebSocket 更適合需要實時交互和低延遲的應(yīng)用,例如在線聊天、游戲和實時數(shù)據(jù)流。

綜上所述,盡管 TCP 是全雙工的,但 HTTP 的設(shè)計選擇和其應(yīng)用場景使其主要成為一個請求-響應(yīng)模型。為了滿足實時雙向通信的需求,WebSocket 協(xié)議被引入為一個單獨的、完全不同于 HTTP 的協(xié)議。

3.http1.1協(xié)議下,如果要雙向互動的話,只能升級到websocket嗎?

4.http協(xié)議升級到websocket的過程簡述一下。哪個響應(yīng)碼是協(xié)議升級?(101)

可以看小林coding的這篇3.9 既然有 HTTP 協(xié)議,為什么還要有 WebSocket? | 小林coding (xiaolincoding.com)。

5.多線程在平時用過嗎?簡述一下場景

6.在kotlin中如何開啟協(xié)程的?StateFlow是如何使用的?

代碼

fun main() {
    GlobalScope.launch(context = Dispatchers.IO) {
        //延時一秒
        delay(1000)
        log("launch")
    }
    //主動休眠兩秒,防止 JVM 過快退出
    Thread.sleep(2000)
    log("end")
}

? 用的比較多的協(xié)程作用域是coroutineScope;StateFlow就是一個熱流,可以對新來的數(shù)據(jù)進行回調(diào)操作。

private suspend fun test() {
    // 創(chuàng)建一個熱流,初始值為1
    val flow = MutableStateFlow(1)

    // 將MutableStateFlow對象轉(zhuǎn)換為StateFlow對象
    // StateFlow對象不能調(diào)用emit方法,因此只能用于接收
    val onlyReadFlow = flow.asStateFlow()

    // 接收者1
    // 啟動一個新的協(xié)程
    GlobalScope.launch {
        // 觸發(fā)并處理接收的數(shù)據(jù)
        onlyReadFlow.collect {
            Log.d("liduozuishuai", "test1: $it")
        }
    }

    // 接收者2
    // 啟動一個新協(xié)程
    GlobalScope.launch {
        // 訂閱監(jiān)聽,當collect方法觸發(fā)訂閱時,會首先會調(diào)onSubscription方法
        onlyReadFlow.onSubscription {
            Log.d("liduozuishuai", "test2: ")
            // 發(fā)射數(shù)據(jù):2
            // 向下游發(fā)射數(shù)據(jù):2,其他接收者收不到
            emit(2)
        }.onEach {
            // 處理接收的數(shù)據(jù)
            Log.d("liduozuishuai", "test2: $it")
        }.collect()
    }

    // 發(fā)送數(shù)據(jù):3,多次發(fā)送
    GlobalScope.launch {
        flow.emit(3)
        flow.emit(3)
        flow.compareAndSet(3, 3)
    }
}

7.說一下Java如何從線程中取返回值?

直接貼代碼了,用Callable+submit()后得到的Future對象進行g(shù)et()api的調(diào)用或者直接使用FutureTask也可以。這里我沒有回答好,只知道使用get()調(diào)用,但是不知道具體是在哪個對象上進行g(shù)et()。

? 記住,我們要獲取返回值的時候,需要用get()方法,這個get()方法是Future接口內(nèi)的,那么實現(xiàn)了Future借口的對象怎么來?

  1. 通過線程池(submit)提交Callable對象,之后會返回一個Future,對它調(diào)用get()即可
  2. 直接通過Future借口的實現(xiàn)類,FutureTask,只不過使用它之后,放入線程池中執(zhí)行就只需要用execute()方法,不能用submit()了。因為當您傳入一個FutureTasksubmit方法中,其實是調(diào)用了另一個重載版本submit(Runnable task),這個版本的submit方法并不關(guān)心Runnable是否是一個FutureTask或是否有返回值。

代碼如下:

 public static void main(String[] args) throws ExecutionException, InterruptedException {
        FutureTask<Integer> ft = new FutureTask<>(()->{
            int i = 0 ;
            for(;i<10;i++){
                System.out.println(Thread.currentThread().getName() + "的循環(huán)變量i的值 :" + i);
            }
            return i;
        });
        ThreadPoolExecutor tpe = new ThreadPoolExecutor(5,10,10
                , TimeUnit.SECONDS,new ArrayBlockingQueue<>(10), new ThreadFactory() {
            @Override
            public Thread newThread(Runnable r) {
                return new Thread(null,r,"這是一個有返回值的線程");
            }
        },new ThreadPoolExecutor.CallerRunsPolicy());
        tpe.execute(ft);
        System.out.println(ft.get());

        Callable<Integer> callable = new Callable<Integer>() {
            @Override
            public Integer call() throws Exception {
                System.out.println("callable開始執(zhí)行");
                int i = 0 ;
                for(;i<10;i++){
                    System.out.println(Thread.currentThread().getName() + "的循環(huán)變量i的值 :" + i);
                }
                return i;
            }
        };
        Future<Integer> submit = tpe.submit(callable);
        System.out.println(submit.get());
        tpe.shutdown();

    }

8.知道的數(shù)據(jù)結(jié)構(gòu)說一下

數(shù)組、鏈表、樹、圖、棧、隊列、雙端隊列、哈希表等等

9.如何判斷一個鏈表中是否有環(huán)?

快慢指針

10. 說一下棧的應(yīng)用場景

棧(Stack)是一個后進先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),有很多實際應(yīng)用場景。以下是一些常見的應(yīng)用場景以及詳細的說明:

  1. 函數(shù)調(diào)用/方法執(zhí)行:在程序中,每當有一個函數(shù)或方法被調(diào)用,系統(tǒng)會將調(diào)用信息(如返回地址、局部變量等)壓入系統(tǒng)調(diào)用棧中。當函數(shù)執(zhí)行完畢并返回時,系統(tǒng)從調(diào)用棧中彈出該函數(shù)的調(diào)用信息,繼續(xù)執(zhí)行前一個函數(shù)。舉例:考慮遞歸函數(shù)。例如,計算斐波那契數(shù)列。每次函數(shù)遞歸調(diào)用自己,都會將當前的計算狀態(tài)保存在棧中。
  2. 表達式求值:棧用于解析和計算算術(shù)表達式,特別是當它們有不同的優(yōu)先級時。舉例:使用兩個棧,一個用于值和另一個用于運算符,來實現(xiàn)后綴(逆波蘭)表示法或?qū)⒅芯Y表達式轉(zhuǎn)換為后綴表達式。
  3. 括號匹配:棧可以幫助檢查括號、大括號、方括號等在代碼或表達式中是否正確匹配。舉例:檢查字符串“{[()]}”中的括號是否匹配。每次遇到左括號時壓入棧,遇到右括號時從棧中彈出并檢查是否匹配。
  4. 后退功能:在瀏覽器或軟件中的后退功能,可以使用棧來實現(xiàn)。每次用戶訪問新頁面或狀態(tài)時,當前頁面/狀態(tài)被壓入棧中。點擊后退時,最近的頁面/狀態(tài)從棧頂被彈出。舉例:瀏覽器歷史功能。當你瀏覽新的網(wǎng)頁時,之前的網(wǎng)頁地址被壓入棧。點擊后退按鈕時,返回棧頂?shù)木W(wǎng)頁。
  5. 撤銷操作:在許多應(yīng)用程序中(如文字處理器或圖形編輯器),??梢杂脕韺崿F(xiàn)撤銷功能。每次更改都被壓入棧中。要撤銷更改,只需從棧頂彈出操作。舉例:在Microsoft Word中,當你刪除文本或添加格式時,每個更改都被保存在棧中。使用撤銷功能時,可以逐步回退到之前的狀態(tài)。
  6. 深度優(yōu)先搜索:在圖形或樹形結(jié)構(gòu)中,深度優(yōu)先搜索可以使用棧來實現(xiàn)。舉例:考慮一個迷宮問題。從起點開始,你可以使用棧來存儲訪問路徑。每次都走可能的路徑,如果到達死胡同,則從棧中彈出上一步并嘗試其他路徑。

這些只是棧的幾個應(yīng)用場景。由于其簡單且高效的性質(zhì),棧在計算機科學(xué)和其他領(lǐng)域中有著廣泛的應(yīng)用。

11.說一下樹的應(yīng)用場景

10和11讓我感覺kpi的味道很濃了,感覺面試官從第7個我沒答好的問題開始就有點失去興趣了,哎

12.TCP/IP是幾個協(xié)議?

? TCP/IP 并不是指一個單獨的協(xié)議,而是一個協(xié)議族或者說是一個協(xié)議套件。這個協(xié)議族中包含了多個層次和類型的協(xié)議。其名稱中的“TCP”和“IP”分別是傳輸控制協(xié)議(TCP)和互聯(lián)網(wǎng)協(xié)議(IP),這兩個是這個協(xié)議族中最著名的協(xié)議,但實際上,TCP/IP協(xié)議族包含了更多的協(xié)議。

TCP/IP 模型大致可以分為以下四個層次:

  1. 應(yīng)用層:這一層包含了各種應(yīng)用層協(xié)議,如 HTTP, FTP, SMTP, DNS 等。
  2. 傳輸層:這一層主要有兩個協(xié)議,即 TCP 和 UDP(用戶數(shù)據(jù)報協(xié)議)。
  3. 網(wǎng)絡(luò)層:主要協(xié)議是 IP,但還包括如 ICMP(互聯(lián)網(wǎng)控制消息協(xié)議)、IGMP(互聯(lián)網(wǎng)組管理協(xié)議)等其他協(xié)議。
  4. 鏈路層:這一層并沒有特定的協(xié)議定義在 TCP/IP 協(xié)議族中,但是這一層主要負責(zé)與具體的物理網(wǎng)絡(luò)相交互,如 Ethernet。

因此,說 TCP/IP 是“幾個”協(xié)議其實不準確。它是一個包含了許多協(xié)議的協(xié)議族,而這些協(xié)議都服務(wù)于不同的目的和功能。

13.TCP協(xié)議和IP協(xié)議的關(guān)系?

14.包粘粘問題說一下

15.k8s說一下

反問:

1.公司是做什么的?

? 電信智科是中國電信的分公司,是專門做AI,大模型的。成都團隊主要做大數(shù)據(jù)相關(guān)的,工作有很多種,開發(fā)、算法都有,需要進去之后再看(感覺這句話挺敷衍的hhhh)。

2.能給我什么建議嗎?

? 我不能給你什么建議。

? 絕了,第一家啥建議也給不到俺的公司,哪怕客套話也不說,感覺是明著kpi了,面試的時候?qū)γ嬉餐Τ车?,也沒開攝像頭。

也可能是自己太菜了,不能讓面試官感興趣吧hhhh

全部評論
明天面試,請問基本都是問的技術(shù)問題嗎
點贊 回復(fù) 分享
發(fā)布于 2023-11-09 22:37 重慶
佬還記得筆試內(nèi)容嗎???
點贊 回復(fù) 分享
發(fā)布于 2023-10-11 16:30 北京
佬,可以透露下筆試是什么題庫嗎?我投的數(shù)據(jù)崗,給我發(fā)筆試鏈接了
點贊 回復(fù) 分享
發(fā)布于 2023-10-10 16:44 湖北
雙九嗎
點贊 回復(fù) 分享
發(fā)布于 2023-10-05 14:57 四川
哈嘍有說啥時候給結(jié)果嗎,我上周面的說這周出結(jié)果,然后到今天都沒信??
點贊 回復(fù) 分享
發(fā)布于 2023-09-27 11:27 陜西

相關(guān)推薦

Elastic90:這公司都在??统雒斯?,老板像是個手頭沒成品,想白嫖面試人方案的樣子。說不定這老板可能都不懂技術(shù)
點贊 評論 收藏
分享
SHC2:關(guān)鍵問題是你這三段實習(xí)是三個不同的崗位…你這樣子秋招就是只有一段實習(xí)的本科生..
點贊 評論 收藏
分享
評論
16
49
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)