首页 > SmartX面经
头像
Stardust567
编辑于 2020-11-10 16:36
+ 关注

SmartX面经

SmartX面经

我记不太到了,按着记忆写一写

一面

一面非常友好,聊了1h,问的东西都很基础,算法讲思路然后发邮件

进程线程区别:资源 调度 大小 开销 通信 亲缘

进程通信,共享内存实现方式,线程通信

输入baidu.com网络层面会发生什么

http请求格式 tcp协议作用和意义 ip协议作用和意义

哈希实现,哈希冲突,设计实现用一个len=1000的数组存一个1000个人名,说一下流程,怎么解决哈希碰撞:加标志位

堆排流程,稳定性

算法题:字符串的四则运算,限定了格式,所以很简单

二面

二面问了半小时emmmm感觉我答得不是很全面

git add 了三个文件 commit后发现少了一个,要怎么办?我说的是再git add filename呗,面试官表示,不行必须要在一个commit里,我说我没这样的需求阿巴阿巴(应该是git log看日志找commit id然后git reset --hard commit id这样会回滚,同时工作区代码的改动也会回滚,如果不想要工作区代码回滚,用git reset --soft HEAD^HEAD^的意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2)

平时用过哪些linux系统?ubuntu怎么配静态网关?老实回答我没配过,但可以用ip命令配置,真正要配可以ip -h看下帮助orz

我写了个代码文件,要怎么看文件大小?du -h和ls -sh都可以看

项目数据的大小,用了数据库吗?用过什么数据库?mysql和mongodb

两个数据库有什么区别,项目中如何选择?我说我当时不care哪种数据库

本科数据库上了哪些东西:数据库的意义和历史,关系模型,编程,事务与锁,NOSQL

讲下ACID里的I:隔离性

数据库事务的隔离级别:我回答的是解决脏读,解决幻读,可重复读,可串行化(严谨应该说,读取未提交,读取已提交,可重复度,可串行化)

  1. 读未提交,其隔离级别最低,允许脏读。换句话说就是,如果一个事务正在处理某一数据,并对其进行了更新,但是同时没有提交事务,允许另一个事务也可以访问

  2. 读已提交,和读未提交的区别就是。读未提交可以读取到别人没有提交的数据,但是读已提交只能读取到别人提交后的值,事务进行的中间值不会读取到

  3. 可重复读,简单来说就是事务处理过程中多次读取同一个数据的时候,这个值不会发生改变,其值都和第一次查询到的数据是一致的

  4. 可串行化,是最严格的隔离级别,他要求所有的事务都被串行执行,既事务只能一个接一个的进行处理,不能并发执行

mysql的数据库引擎,我回的是InnoDB(因为我只知道这个orz)问这是数据库的默认引擎吗?我只能硬着头皮说我只见过这个,那大概率是的。(实际上确实Innodb是mysql默认引擎,但除了这个还有MyISAM存储引擎,MEMORY存储引擎,Archive存储引擎)

如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择

如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率

如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果

如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

算法题:

  1. 实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数

  2. 1 - N 中,求数字 x ( 0-9 中的一个数值) 出现的次数。 如果一个数字中,x出现多次就计算为多次。 比如 1-2593, 求数字5出现的次数,其中 555 是在这个范围内的,这个数字里 5 算出现了3次。 要求代码的算法复杂度尽可能的低。


更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐