滴滴面经干货
不管是找实习还是找正式工作,问的问题大多都是相仿的,区别就在于找实习时候的面试会相对简单一点,但是面试问题基本都差不多。现在就说说滴滴的面试吧(共四面,3技术+1hr)。(公众号:coderTO)
参加过滴滴的笔试之后,焦急的等待面试通知。各位,笔试也不是好通过的,无论哪家,除了非互联网和一些小公司。笔试的难点不是你所已经掌握的java基础,算法基础,各种基础,真正拉开你和竞争者之间差距的是那两道左右的编程算法题还有智力题,智力题多做几遍也就那么回事,你需要做的就是掌握各种基础之后多把重点放在编程算法题。编程算法题难点有二,其一是这道题你到底会不会做,这一点也就是最难的,需要你真正的理解并且会做这道题。其二嘛稍微简单点,就是你得熟悉笔试网页的编辑器,main函数里面怎么写你得知道,答笔试题之前多看看考试须知,那些提示并非没有用处。
收到了滴滴的面试通知,心情很激动,因为这是我最中意的公司,没有之一。滴滴的一面二面都是视频面试。滴滴的一面是在一个周五下午三点,因为寝室没电,我选择去清咖啡(一间餐厅)接受面试,到了清咖啡,找个空位坐下,等待面试老师上线,等了四十分钟,面试开始。(说一下,视频面试需要等待的时间都很长,要有耐心)
礼仪部分省略,答题技巧省略,想要知道可以点击面试礼仪。
一面问题:
1、线程和进程有什么区别?
答:线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。更多详情请自行百度
2、如何在Java中实现线程?
答:一共有四种方式实现线程,最简单的有extends Thread ,implements Runnable,还有两种,实现Callable接口通过FutureTask包装器来创建Tread线程,使用ExecutorService、Callable、Future实现有返回结果的线程。
你最少要知道三种吧,自己去百度下java线程实现方式,线程池啥的了解一下
在面试问我java怎么实现线程的时候,让我在编辑器上进行编程,主要考察你是否是纸上谈兵,是否会写代码。
线程的问题在面试的时候属于常考点,一定要平时多留意。
3、java多线程会有同步的问题,讲一下synchronized和lock的区别?
答:主要相同点是Lock能完成synchronized所实现的所有功能,主要不同点是Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。
synchronized的相关用法和概念一定要十分清楚,lock的使用多看看。
4、知道cookie么?讲一下(cookie是重要考点,一定要可以讲的超级清楚)
答:Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入JSESSIONID用于标记一个会话(session),这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。 答案地址点我!但是一个问题的答案要都看看不同博主写的,答案大体都相同,但是细节上会有偏差
5、听说过生产者消费者模式么?
答:这个设计模式常考,因为设计编码实现,本文奢求精简,请自己去百度,并且可以自行编码,点我下载大话设计模式
一面的问题大概就是这些,线程方面的问题,很重要!一共四面,每天持续更新!!!