字节跳动提前批面试分享(菜鸡版)

在7.13号经历了我的第一次面试,想通过面试了解一下,在大厂工作需要具备什么能力。下面来说说整个面试过程和我的体会吧!!!

第一个问题(是关于简历上的项目)

​ 我面对这个问题,其实没有把握,因为并不是属于那种有人带领的做的项目,只是自己看着网上模仿的,对数据库简单的增删改查。一直追问我的项目背景什么的,最后说道可以理解成物流管理系统就不问了

​ 这个问题结束我以为,看中的第一点就是项目经历,感觉要凉凉了。

第二个问题(关于数据库)

​ 首先让我写一个SQL语句,一个学生表(name,subject,score)让我查询出所有科目都及格的学生
在这里插入图片描述

​ 上面是我模拟的数据表,下面是sql语句。

select name from student
group by name
where min(score)>=60;

​ 对呀SQL语句来说还是相对简单,由于考虑欠缺第一次没写出min。

​ 其次问我关于事务隔离性,我说出隔离性,是为了事务之间互不干扰,可以独立进行,再次追问我事务隔离级别。面对这个问题我一点没有了解。

下面是百度的答案:

在这里插入图片描述

第三个问题(操作系统)

​ 让我说出进程线程区别,对于这个问题,我对于操作系统的学习不是很牢固,我也没有回答,只是回答出,线程可以并发,进程不可以,也是支支吾吾。面试后后百度的答案才清楚。

下面是百度的答案:

1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)
2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。
而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。
4、但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

第四个问题(计算机网络)

​ 首先问我http协议的构成(请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体)

​ 请求行包含什么?

在这里插入图片描述

​ 错误代码有哪些?502和504的区别

在这里插入图片描述

​ 最基本的说出计算机网络分层模型,我是按照五层来说,还是简单的。

在这里插入图片描述

然后问我TCP/IP属于哪一层,传输层的作用。

​ Tcp/Ip属于网络层,我好像回答的是传输层。。。传输层是用于两个计算机之间数据的传输。传输层的功能就是建立端口到端口的通信。相比网络层的功能是建立主机到主机的通信。

还有TCP/IP的三次握手,四次挥手。
在这里插入图片描述
在这里插入图片描述

最后问我四次挥手的最后一次叫什么,对于这个问题没有了解。目前百度也没有结果,希望有人告诉我一下。

第五个问题(Java编程,关于数据结构二叉树)

先让我写出,输出二叉树每一层,最大的节点的值。emmm由于编程能力有限没有写出来。

面试官看我写不出来,就降低了难度,让我广度遍历二叉树。这个还是简单的。

class ListNode{
      ListNode left;
      ListNode right;
      int val;
      public ListNode(int value){
            this.val=value;
      }
}
public void levelOrderTraversal(LsitNode node){
      if(node==null){
            System.out.print("empty tree"); 
            return;
      }
      ArrayDeque<ListNode> deque = new ArrayDeque<ListNode>();
      deque.add(node);
      while(!deque.isEmpty()){
            ListNode rnode = deque.remove();
            System.out.print(rnode.val+"  ");
            if(rnode.left!=null){
                  deque.add(rnode.left);
            }
            if(rnode.right!=null){
                  deque.add(rnode.right);
            }
      }
}

以上是面试的问题及解答,最后问一些面试官问题了解到,对于应届生来说还是抓好基础,项目是加分项,如果对于工作多年的人面试就不会问网络,操作系统相关的基础知识,对于应届生还是抓基础比较好。通过这次面试,可以明确自己的学习路线了。希望看到这篇文章的应届生,可以抓好基础,有能力多做一些好的项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值