小米的面试过程及面试题~

640?wx_fmt=jpeg

本文以一位童鞋的面试经历为例,为大家详细介绍一下小米公司的面试过程和遇到的面试题,供大家参考。


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可以避免点继承的局限,一个类可以继承多个接口。


扩展阅读

这是我见过最牛的程序员面试简历

程序员去阿里面试,没想到过程如此壮烈

面试失败十次是一种什么样的体验?

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值