【字节跳动】客户端岗-教育prek客户端日常实习

(这两天密集的面试,很多东西真的记不清了,把能回忆出来的尽量回忆出来,不保证全面和准确,仅供参考)

字节跳动一面

自我介绍

1、ttp 与https 区别,除了安全性之外还有别的不同吗?

2、对称加密和非对称加密在https的应用

3、操作系统内置证书的作用

4、虚拟地址及其作用

5、进程和线程的区别

6、不同进程之间互相有影响吗

7、不同线程之间呢

8、线程退出进程会退出吗

9、用过java线程池吗,java线程池中线程是如何执行任务的?

10、三道算法题

反转链表

快速排序手撕

一堆负数一堆0一堆正数 求最后一个出现的负数 第一个出现的正数(要求时间复杂度为logn)

字节跳动二面

(面试官从一开始就在笑,全程在笑,好开心的样子,可能是遇到了什么特别开心的事了吧;然后过程中也在憋笑,可能我的某些回答也让他憋不住吧哈哈)

自我介绍 ,聊的内容有点回忆不起来了……

记不起来接下来是什么了,然后面试官说我们做一些题吧,然后再问基础知识

算法题1:给定二叉树的根节点和目标节点,求从根节点到目标节点的路径;(用递归写的,但是面试官说思路对,有一些小细节有问题,让我下去再改改)

面试官说接下来的两道题你不用写代码,说思路就好。

算法题2:一个数组里有一个数的出现次数为奇数,剩下的数字出现的次数为偶数,求出现次数为奇数的数字

算法题3:海量的视频,求播放量次数最多的前k个视频

接下来是基础知识(面试官说你擅长Java语言,那我问你java吧)

1、Java里面有几种内部类,说一下?

2 、你刚刚说到实例内部类可以访问外部类的成员,请问这是为什么?

3 、你刚刚说到引用,请问java里面的引用分为几种?我答了符号引用和直接引用,面试官一直笑,好

像在憋笑,然后说你说说吧,然后我说完之后他又笑,说,“我指的是 强引用

软引用 弱引用 虚引用”,这些你了解吗?我说不了解

4、你刚刚提到了内存,说说java的内存管理机制?

5、 你说说java如何判断对象是否该回收?

6、再聊聊java集合吧

你知道hashtable吗。说说hashtable和hashmap的区别,他们不同在哪里呢

(突然想起来红黑树的问题,不知道是不是这场面试还是别的面试里的,有点记不太清了。 不知道怎么就把话题引到了红黑树的左旋右旋操作那里,然后我答得也非常凌乱……)

用过迭代器吗?为什么要有迭代器呢?

7、你知道fail-fast吗

8、了解双亲委派机制吗?为什么要有双亲委派机制?

基础知识这边好像是只问java了,能记起的就只有这些。

然后是反问环节:

1、我问面试官,想问问这个岗位重视相关经验吗,我看您也没怎么问安卓的东西?面试官又笑我,好像又在憋笑,然后问我,你有客户端经验吗?我说没有,他更笑了。然后解释说公司有友好的培训制度和带新人制度,没有问题

2、我又问,通过面试,您觉得我有哪些明显的劣势。他又笑了!!!在憋笑!!然后说你们学生就爱问这个问题,我不做评价啊,我对这个问题不做评价

3、常规性的问了一下啥时候得到结果,他的回答也挺常规的。当然,他还是在笑!!!

这次面试除了使我觉得我自己太菜之外,还让我认识到,今天的面试官一定很开心,全程在憋笑!辛苦了!!!

字节跳动三面

先做自我介绍

然后面试官问,你有过客户端开发经验吗,答曰没有。然后那你有了解过Android相关知识吗?我说有了解过安卓四大组件、七大生命周期。然后面试官问你有下个Android Studio之类的吗?我说从Github上下了个源代码在Android Studio运行,可是由于Gradle的问题没成功。面试官还耐心地解释了一下问题。

然后基础知识:

计网

  1. 你知道滑动窗口吗?
  2. 你刚刚提到流量控制,什么叫流量控制呢?
  3. 你知道拥塞控制吗?拥塞控制和流量控制的区别在哪里呢?
  4. 这里还考察了http协议中的请求方法,不过由于我始终没有搞懂面试官的问题,面试官放弃了。

操作系统

  1. 聊聊操作系统吧,你说说虚拟内存?
  2. 你刚刚提到虚拟内存的段和页,段和页有什么区别呢?
  3. 你刚刚提到分页是为了便于操作系统管理内存,那么这个“管理”具体是什么意思呢?
  4. 操作系统为什么要设置分页呢?看我没太懂他的意思,面试官继续解释说:我的意思是操作系统分页有什么好处呢?

Java语言:
1、你说你熟悉java语言,那么读研期间你大概写了多少行JAVA代码?有算过吗?

然后他说好久没问过JAVA的题了。

2、他想了会儿,你说说内存泄漏吧?

3、Java的内存泄漏和C++的内存泄露有什么不同吗?

4、你说java能自动回收垃圾,那你认为Java中还存在内存泄漏的情况吗?

5、你刚刚提到Jvm垃圾回收,那你大概说说垃圾回收吧。

6、 你刚刚提到可达性分析的根对象,那么除了栈中的对象可以作为根对象外,还有别的吗?

7、你说说Java 中常见的数据结构吧

8、你刚刚提到的这些数据结构的底层数据结构你了解吗?(我说我用到的有Array、ArrayList、LinkedList、HashMap、HashSet

9、你说LinkedList的底层是单向链表还是双向链表(我答了是双向的,不知道对不对),面试官继续问你怎么知道是双向的?我一时不知道怎么回答….

10、你知道LinkedList实现了哪些接口吗?

11、你说LinkedList实现了Deque接口,这个接口里有哪些常用的函数呢?

12、继续说说HashMap、HashSet的底层数据结构

13、你刚刚提到了红黑树,红黑树相比其他二叉树有什么特殊的地方?

14、你刚刚提到了HashTable,你说说HashTable和 HashMap的区别?

15、你刚刚提到了线程安全,如果我想让ArrayList达到线程安全你会怎么做?(我答了加volatile关键字),面试官又问,这样可以保证操作的原子性吗?(我说如果ArrayList存储的元素是基本类型的话,我可以用java Concurrent包下的原子类,也不知道对不对)?面试官又问还有没有其他的方式呢?(应该是这样的连环问,记得不是很清楚

16、你知道Collections 类吗?你了解这个类下有哪些函数吗?我说我只用过Collections.reverse ,他笑了,然后说你可以下去再看看,有好多有趣的函数。

设计模式:

1 你知道哪些设计模式?含义及它们的应用说一下

2 你说到代理模式和适配器模式,那代理模式和适配器模式都是增加一层,那么他们的区别在哪里呢

3 了解观察者模式吗?说说观察者模式

4 自己用过哪些设计模式?

算法题:

整理出来的题意是这样的:

两个城市之间有k条航线,给定一个航空公司在这两个城市间的航班表,如果任一时刻在这两个城市间飞行的最大航班数小于等于k,则称该航班安排是完全安全的状态,写函数判断一下。

反问环节:

没啥可记录的

这次最大的感觉是面试官顺着自己的回答而相应地展开连环问,而不是像有个题库一样一个一个割裂地提出问题来问??

发表评论

后才能评论