我在字节跳动的面试过程以及遇到的面试题

Posted 程序员小捣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在字节跳动的面试过程以及遇到的面试题相关的知识,希望对你有一定的参考价值。

1.自我介绍

这个不用说了, 自己介绍一下自己。

2.数据库My Sql和SQL Server以及Oracle的区别?

他是看了我写了一篇这样的博客才问的, 可惜我都忘了自己写了啥!吃亏了,博客太久了,都忘记看了。

3.数据库的左连接和右连接

1)左连接:只要左边表中有记录, 数据就能检索出来,而右边有

的记录必要在左边表中有的记录才能被检索出来

2)右连接: 右连接是只要右边表中有记录,数据就能检索出来

4.据库的视图,为什么要用视图?

视图其实就是select查询语句通过关联查询或者其他查询组建起来的,他是多个表的查询结果集,使用视图可以提高一个程序的SQL效率,比平常使用select 更加便捷, 我们可以直接select * from 视图VIEW 来获取,数据库也更容易维护更新

5.什么是事务?

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。 事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

6.数据库如何获取表里最大值?

假如想要取得最大ID的name值(这里只是借ID为例 不用ordery by)
解决办法:select max(id) from db_name

7.那获取第二大的呢?

select top 1 *
from table where 字段a not in (select top 1 字段a from table order by id desc)a order by id desc

以上都是数据库的, 数据库没发现,基本挂了。当然,还要继续提问呐。

8.因为我是物联网专业的, 所以他问了一下物联网方面的知识。我给他介绍了短距离通信。

9.如何实现多线程服务器?

这个不好回答, 主要是在线程的run方法里面执行一些输入输出流操作,

如何实现多线程缓冲池?

通过队列来实现

10.java的数组、List、map的区别?

数组是固定长度的,list不固定,map是基于key-values进行映射的。访问元素数组可以通过下标访问,list需要遍历, map可以通过Key值获取map的values.

11.链表反转

1.链表内反转
节点的下一个元素插到节点之前。依次进行,
例如:
链表的第二个插到第一个之前, 第三个插到第二个之前
2.用栈实现
遍历链表,把每一个节点放到栈里面,遍历万,然后再出栈

12,实现线程的方式

1.继承Thread类。
2.实现Runnable,然后重写run方法。

两种方式的区别。

1.一个类只能继承一个父类,如果已经继承了Thread,就无法继承其他的了,所以一般用runnable.
2.使用Runnable可以避免点继承的局限, 一个类可以继承多个接口。
适合于资源的共享

最后

我整理了一份216页软件测试大厂面试题,以及2021推荐最新的简历模板,送给小伙伴们,关注公众号软件测试小dao自行领取,和一些小伙伴建立一个技术交流群,一起探讨技术,分享技术资料,旨在共同学习进步,如果感兴趣就加入我们吧!1033482984

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

以上是关于我在字节跳动的面试过程以及遇到的面试题的主要内容,如果未能解决你的问题,请参考以下文章

面试字节跳动时,我竟然遇到了 LeetCode 原题……

字节跳动最爱考的前端面试题:CSS 基础

字节跳动大数据开发面试题-附答案

2020 字节跳动 数据库面试题汇总

字节跳动大数据开发面试题-附答案

字节跳动大数据开发面试题-附答案