字节提前批客户端面经(零基础Java 三面更新 许愿OC)
- 之前太懒了,从来不发面经,这次发来攒点人品。重点问题都标粗了,赶时间的选手可以跳过废话部分。
- 字节实习面了两次都挂的菜鸡选手,也不知道能坚持到第几轮🤔🤔🤔🤔。先许个愿吧~万一实现了呢🤗
- 二面面经更新了。因为有些问题是连着问的,所以我标了部分回答,大家还是挑重点看加粗部分就可以。有问题可以指出来,大家聊聊。
- 三面面经更新。面了15分钟,没问什么技术。面试官说感觉还行,他再去跟其他面试官聊聊,让我等HR联系。
- 三面
- 自我介绍。
- 有过实习经历吗?
- 主要用Java是吗?C++或者别的别的语言有用过吗?
- 简历里的项目都是Java写的吗?(不是
- 设计模式有了解吗?
- 数据库用过吗?看你项目里写的有MySQL?
- 其他后端组件用过吗?比如redis?(没
- 说一个你大学期间比较有成就感的事情吧。(我说了做的第一个项目)
- 你们这个项目怎么分工的?项目大概做了多久?你是组长是吗?
- 介绍一下游戏玩法。(因为第一个项目是个游戏)
- 项目中遇到过什么困难吗?
- 对未来找工作有什么想法吗?现在怎么想的,没考虑读研吗?
- 从技术方向上来看,你希望3-5年后朝着哪个方向去发展?
- 之前有客户端开发的概念或者经验吗?(没有经验,只说了感觉客户端有点像在写前端)
- 那你写过前端是吗?(只会写最基本的html)
- 第一志向为什么是客户端?我觉得按照你的简历来看,第一志愿肯定是服务端开发呀?
- 问成绩。就还是问读不读研。
- 反问环节。聊聊天。
- 二面
- 自我介绍。
- 读研吗?
- 编程语言? (Java)
- 实现多线程的方式?
- 各有什么优缺点?
- 多态一般是什么用法?
- JVM或者编译器如何实现多态的?子类方法调用过程中动态绑定的实现过程?
- 进程和线程的区别?
- 进程间通信的机制有几种?你觉得哪种方式效率最高?(回答:我个人觉得是共享内存)
- 为什么觉得共享内存最高?(回答:共享内存可以直接读写同一块内存。其他方式可能还有些中间过程吧。)
- 为什么觉得其他方式没有中间过程,你说的中间过程指什么呢?
- 进程的调度策略。
- CFS调度策略。
- RR的逻辑(即具体的调度过程)。
- 那按照你刚才讲的调度策略,在多核场景下,该如何编程呢?需要注意些什么?
- 那怎么通过代码去控制这几个核,让它们平均地去运行这些进程呢?(回答:F1:每个核一个调度队列,计算负载率,实现平衡。F2:共享调度队列,谁空闲谁运行)
- 那你这是说随便写完去看嘛。那怎么通过代码去告诉操作系统,我应该哪个核上跑哪个线程呢?
- CPU绑核听过吗?
- TCP和UDP区别?
- HTTP和HTTPS的区别?
- HTTPS怎么加密的?
- JAVA中如何调用C++的函数?JNI的一些内容了解吗?
- JVM如何去load一个.so库?(不知道。个人水平有限,已被锤懵。)
- ================================================================此时才过去短短的15分钟,本人感觉像已经过了一个世纪。
- 那来写段代码吧。
- LeetCode 25. K个一组反转链表
- LeetCode 53.最大子序和
- ================================================================coding结束。
- 再问一个问题。JVM的GC机制了解吗?
- GC中具体有哪些方法呢?
- 那JAVA中的几种引用了解吗?
- 结束。反问环节。
- 一面
- 还在上学是吗?明年六年毕业吗?
- 简单说下在学校上过的专业课。如果有实习和项目的经验,也可以介绍一下。(我没有实习,就没讲)
- 面向对象这个课讲的是啥?(因为专业课里提到了)
- 开始做题,自选语言。
- 题目是:给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数,返回这个整数的值。数据保证该整数在int表示范围内。
- 样例:输入:012345BZ16 输出:1193051 说明:12345B对应的十进制为1193051
- (力扣上没找到这个题,不过难度应该是easy的(现在看真的超级Easy,但是面试的时候还有点紧张)。我开始写用了一维dp数组,然后面试官问为什么要用数组。我说dp,他说其实一个int就可以了。我一看,确实,就把数组优化为一个int了。然后面试官说数值比较需要每一个循环都求一下吗?我看了下,其实不用,就再优化了一下。他说现在应该是最优了,让我提交。AC。结束。从做题到讨论结束提交大概花了9min)
- 最熟悉的语言是Java是吗?
- Java是学校开的课还是自学的?然后开始问Java相关的问题。
- int和Integer的区别?
- 比较两个double的话,有什么注意的?
- Java有这些权限:public,protected,private。如果不写,那默认权限是哪个?
- 项目上用的什么数据库?回答mysql。
- 数据库索引是干什么的?
- 简单介绍一下你最近的项目的功能?(又问回了项目,我讲了下游戏的模块。非常简单的游戏,面试官都听笑了qaq,也没问具体实现。)
- 你应聘的是实习生还校招呀?回答校招,面试官说应聘这边显示的是实习生,两个要求是不一样的。(我……
- 用过网络相关的编程吗?写过socket吗?(没写过
- tcp的连接过程。
- 用过一些数据结构吗?数组和链表的区别?
- map这种类型的存储结构是什么?(我说底下的结构是桶数组+链表,面试官又笑了。不知道为什么……
- Java这两个类的区别?String和StringBuilder。
- Java底层类加载过程。
- 你用Java可以开发什么?你主要用它来干什么?主要是后端对吗?(我提了一嘴还可以写安卓
- 你有写过安卓吗?
- 了解过安卓系统吗?四大组件是?(说了两个,面试官继续笑。我真的很窘。
- 你是看过这方面的书吗?
- 现在开始做毕设了吗?我说没有。他说下学期是不是要开始了?我说不是。他说你不就剩下一个学期了吗?我:?还有俩。他:啊,还有一整年。
- 你在学校还有参加过什么活动吗?(基本没有,为啥要问这个。是想问科研竞赛吗?
- NDK了解过吗?(不了解……
- 你写的后端用什么操作系统?Linux吗?你布署的程序跑在哪上面?Linux吗?Linux获得进程列表的命令?相关参数?(知道命令,不知道参数
- 进程和线程的区别。
- CUP调度的是进程吗?(是线程吧。
- 线程之间的同步机制。(我大概知道临界区和加锁的概念,但是具体的同步方式我不知道。
- 结束。反问环节。