滴滴服務端開發工程師(實習)面經

http://www.changxuan.top/2019/01/31/滴滴服務端開發工程師(實習)面經/

自我介紹

自我介紹,然後講自己的一個作品。講解一下作品中使用了哪些技術,有哪些模塊和功能。(結構、數據庫表、如何實現、網絡延遲對功能的影響)

注:這一部分用時較長

瞭解熟悉哪些語言?(php、Java)

php :“array_merge ”和 “+”的區別 ?(沒用到過這個函數,沒答上來!)

<?php
$arr1 = array('a'=>'PHP');
$arr2 = array('a'=>'JAVA');
//如果鍵名爲字符,且鍵名相同,array_merge()後面數組元素值會覆蓋前面數組元素值
print_r(array_merge($arr1,$arr2)); //Array ( [a] => JAVA )
//如果鍵名爲字符,且鍵名相同,數組相加會將最先出現的值作爲結果
print_r($arr1+$arr2); //Array ( [a] => PHP )
?>

Java 編寫一個發牌程序

1.講完思路之後,面試官問還有沒有更好的方法,一緊張腦子一片空白說暫時只想到了這個地方。很尷尬,修改了一次代碼之後忘了保存,運行之後沒有輸出結果,然後面試官接着往下問。

import java.util.*;
public class Exam {
    public static void main(String[] args){
        Random random = new Random();

        int[] pai = {1,2,3,4,5,6,7,8,9,10,11,12};
        int[][] person = new int[3][4];

        for(int l = 0; l < person.length; l++){

            for(int j = 0; j < 4; j++ ){
                int i = random.nextInt(12);
                System.out.println("+"+j);
                if(pai[i] == -1){
                    j--;
                    continue;
                }
                person[l][j] = pai[i];
                pai[i] = -1;
            }
        }
        for(int i = 0; i < 3; i++){
                for(int s = 0; s < 4; s++){
                    System.out.print(" "+person[i][s]);
                }
                System.out.println();
        }
    }
}

2.視頻結束後腦子突然又好用了,然後想到可以通過直接將 pai.length-1 下標處的牌賦給被移動下標的位置,下次隨機數的範圍減一。時間複雜度就直接是O(person.length x 4)了,不會因爲出現相同隨機數而增加時間複雜度了。

瞭解操作系統嗎?Linux 如何定時任務…

我說使用過 crontab 然後面試官反饋說不是這個。。。

狀態碼 500、400 分別表示什麼含義?

瞭解計算機網絡嗎?三次握手過程

balabala

四次揮手過程

balabala

大致就是這些內容,有些遺漏!


和預想的不太一樣,本來以爲會問很多關於數據結構、操作系統(書本上內容)、計算機網絡等基礎內容,然後大都問的是針對實際工作中可能會出現的問題,自己答得不是太好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章