【校招】面试_字节跳动_客户端开发工程师_二面

1 面试信息

面试形式:视频面试
面试时间:2020-03-10 14:00:00GMT+08:00
面试时长:约半小时
面试职位:客户端开发工程师-产品研发和工程架构部

2 面试问题

1.A、B轮流抛硬币,由A先开始,抛到正面获胜,抛到反面则把硬币交给另一个人抛,问A获胜的概率是多少(面试官强调这是重要问题,并要求给出概率的具体值)
2.以下代码的输出结果是什么?为什么?

public class Main{
    public static void main(String [] args){
        String s = "123";
        test(s);
        System.out.println(s);
    }
    public static void test(String s){
        s = "abc";
    }
}

3.说明网络结构模型(包括OSI和TCP/IP,说的越多越详细越好,考察知识面的广度)
4.介绍cookie,说明cookie的优势
5.说明request和respond的结构内容,作用原理(没太听懂)
6.介绍volatile(完全不知道)
7.说一下平时都在学些什么
8.未来的职业规划
9.对字节跳动有什么想问的问题


* 面试问题答案整理

1.答:2/3。

看了牛客网上相关的题解,好像明白了。

第一轮:
A获胜的概率是1/2
B获胜的概率是(1/2)^2=1/4
第二轮:
A获胜的概率是(1/2)^3=1/8
B获胜的概率是(1/2)^4=1/16
......
第n轮
...

综上,
A获胜的概率是P(A)=1/2+1/8+...
B获胜的概率是P(B)=1/4+1/16+...=(1/2)*P(A)

而P(A)+P(B)=1
即(3/2)*P(A)=1
故P(A)=2/3

(妙啊,虽然我当时没答出来)

2.答:123。字符串形参在实参传入时只是值传递。

3.答:OSI七层,TCP/IP四层之间的对应关系,具体的协议内容。

4.答:HTTP协议是无状态的,即服务器无法判断用户身份,cookie实际上是一小段文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户的状态,就使用response向客户端浏览器颁发一个cookie,客户端浏览器会把cookie保存起来,当浏览器再次请求该网站时,浏览器把请求的网址同cookie提交给服务器,服务器检查该cookie,以此来辨认用户状态。

5.答:略。

6.答:volatile是一个类型修饰符,作用是作为指令关键字,确保本条指令不会因编译器的优化而省略。volatile的特性是保证可见性,不保证原子性和禁止指令重排。

你可能感兴趣的:(校招)