2018年9月10日途牛微信视频面试一面面经
刚刚面完途牛一面,面了四十分钟,也不知道结果,记下来分享一下。
(用“.........”标记处意思是我说了很多,省略)
1.面试官上来就问项目,你们的项目用了那些技术?
答:spring、springmvc、mybatis框架搭建,solr作为站内搜索,MySQL作为数据库,maven管理项目...........(项目比较low)
2.你在项目中做了什么?说一说
答:做了商品信息后台管理,缓存系统.......
3.商品管理在数据库中有几个表?
答:商品基本信息表,商品类别表,商品规格表,商品规格属性表(我讲了下都存了什么,一顿讲)
4.商品价格变动,商品的信息会变动吗?
答:会.................
5.你们设计数据库的时候遵循什么原则?
答:我们做这个项目时也没什么经验,走了很多弯路,对业务逻辑不是很理解.,比如商品的规格字段.............(囧)
6.商品的基本信息与规格信息分两个表存放,前台查询的时候怎么处理?
答:商品id存在这两个表中作为外键,前台查询时采用延迟加载,点击tab页才去加载商品的描述或者规格信息。
7.你对于sql查询的优化有什么看法?
答:(我从引擎,索引,sql语句,分表分库等方面吧啦吧啦一大推..................,面试官觉得可以,说我基础不错)
8.你简历说你会用git,svn,我想问你们多个人用git上传出现冲突怎么处理(好像是这么问的)
答:不太了解,我们做项目没遇到(囧,我真不懂,后悔往上写熟悉git了)
9.你说你用redis做了缓存系统,redis怎么用的?
答:商品的查询加入缓存、后台商品管理信息更改要更新缓存、我们的购物车也是存在redis缓存数据库而不是存在cookie,还可以用于单点登录系统..............
10.现在有这么个场景,前台访问量特别大,缓存系统压力变大,你有什么好的办法吗?
答:把缓存系统单独分到一个节点,这个节点为一个集群,分担压力...........(不太懂,按自己想法讲了)
11.咱们来聊聊java基础吧,讲讲String类型
答:(我从String是不可变的、被final修饰,以及stringbuffer和stringbuilder结合讲的,还行,面试官就觉得不错)
12.你提到stringbuffer是线程安全的,你能讲讲你对java线程安全的理解吗?
答:(简单讲了一下,感觉讲的一般般)
13.java的集合用过吧,讲讲hashmap,包括它的底层数据结构、关键方法的流程等等
答:(我看过hashmap源码,所以比较了解,我从put方法流程讲起,包括底层数据结构、hash值怎么求的、怎么扩容、为什么扩容一定要扩到2的n次幂、与hashtable进行多方面比较等等,面试官很满意,我还想继续说,面试官说可以了。。)
14.你说你熟悉java并发编程,你能说说线程池的使用有什么好处吗?
答:第一,便于线程管理。第二,因为线程创建销毁开销大,线程池可以让线程重复利用,节省系统开销
15.跟executor有关的五种线程池,你能讲讲吗?
答:(我这块有点忘了,支支吾吾,勉强说了两个)
16.https和http的区别?
答:https采用ssl安全套接字协议是安全的,http不安全;https是443端口,http是80端口;https的认证需要到相关机构申请,http不需要(我找了一下,感觉我答得不全)
17.你们做的项目中,http的方法用到哪些?
答:只用到get,post
18.讲讲get和post的区别
答:(简单说了一下,就是大家都知道的,完事我找了一下,感觉答得不全,两者区别不少,是我平时学习的疏忽)
19.说到请求头,讲讲请求头里都有什么字段?
答:(我只答出了header、cookie、contenttype,然后解释了一下,其他的忘了)
20. 你们项目中用到了日志吗?
答:用了,log4j(然后他笑了笑,就没往下问,不知道为什么)
21.简历上说你熟悉spring,springmvc,mybatis,那咱们来问问spring的问题,springmvc的controller和restcontroller标签的区别?
答:(答得不好,大概说了下支持rest风格形式的请求url,不太会)
22.简历上说你会JavaScript,你们项目的前端是你写的吗?
答:原生的js我会,也写过一些东西,但是简历的项目前端使用easyui和jquery写的,不是我做的
23.简历上有个你自己的爬虫项目,大概讲讲
答:(我的那个爬虫项目用基于python的scrapy框架写的,部署在阿里云服务器,大概讲了下,但是面试官好像就是随口问问,他也不懂爬虫这方面的东西)
24.简历上说你熟悉设计模式,讲讲你熟悉的设计模式,你用过吗?
答:我熟悉单例模式,适配器模式,装饰器模式,原型模式,***模式,责任链模式,工厂模式,我自己写过的串口通信程序就用到了单例模式...........(感觉答的不是很好)
25.你还想问我什么问题吗?
(1)我问:途牛在南京和上海都有部门吗?他答:主要在南京。(2)我问:新人进入途牛有导师带着吗?他答:有的,都会有。(3)我问:您觉得我还有什么方面可以提高?他答:你的基础已经可以了,平时可以在新技术方面多深入些,比如深入理解spring、springmvc学学springboot,也不用看太多,当然最重要的还是基础,你的基础可以
面试感觉还可以,挺重视项目的,但是我项目比较渣,框架用的也不是很熟,平时看的最多的就是java基础、jvm(jvm他想问,但是又说不问了)、Java并发,面试官问这些问题确实摸到我的底。面试官首先是根据简历问问题,再就是根据你的回答引出其他问题,所以要注意:第一,简历上的东西一定要弄懂,不懂得别写;第二,要会引导面试官,你回答某个问题会涉及其他知识点,你就提你熟悉的知识,不懂的不提,你要引导接下来他出题的方向。