概述
在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);
}
}
}
以上是面试的问题及解答,最后问一些面试官问题了解到,对于应届生来说还是抓好基础,项目是加分项,如果对于工作多年的人面试就不会问网络,操作系统相关的基础知识,对于应届生还是抓基础比较好。通过这次面试,可以明确自己的学习路线了。希望看到这篇文章的应届生,可以抓好基础,有能力多做一些好的项目。
最后
以上就是虚心乌冬面为你收集整理的字节跳动提前批面试分享(菜鸡版)的全部内容,希望文章能够帮你解决字节跳动提前批面试分享(菜鸡版)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复