面试的前提:前端
姐姐有一个同窗在yy工做,通过该前辈的内推,在我大二升大三的暑假得到了一次yy的后端面试机会.java
面试的准备过程(有些废话,选择看):ios
首先yy的总部是在广州番禺的南村万博,我家在地铁4号线过去还算方便. 出了地铁后前面就是yy总部,说实话当初的第一眼印象是有些失望,由于周围有围墙在施工,还有一些没盖起来楼,感受是个刚刚发展起来的地方.面试
有一点要注意的是,yy的总部是一个办公楼,由于人太多了我实在找不到电梯排队的尾.最后仍是前台姐姐叫保安带我去排队ajax
面试过程:数据库
面试官是一个年轻的男性,首先上来叫我先自我介绍,而后开始技术面试(这里开始我就紧张了,说话不天然,也是面试跪的一个很大缘由)json
(实际面试中我没说这么多,有些是后来补充的)axios
第一问:说说你对多线程的理解后端
我答:多线程主要是异步和同步两种状况,异步的话我说一个案例吧,好比一个用户在注册,咱们除了要对用户的信息进行数据库添加的一些简单操做,还有一些复杂耗时的操做好比分析该用户喜欢什么,咱们要给他推送什么文章,而这时咱们就要开一个线程去异步处理这些耗时的操做,等处理完就接口回调回来.而同步的话主要考虑的是线程安全的问题,线程安全通常是用synchronized去解决,synchronized 的原理就是同一时间只有一个线程能够访问synchronized括起来的的代码 对象或方法,就只说这么多了安全
第二问:说说你对get和post的理解
我答:get和post本质上没有任何区别,区别是在一些规范使用上.好比前段的axios喜欢get的时候把参数放在url,post的时候把参数转成json字符串放到请求体,可是不是get只能用urlquery.post只能用请求体,其实不是的,若是从最底层的ajax来写的话,get能作的事post也能作.
而后对于后端来作一个http请求先通过filter而后再到servlet,servlet分别有两个对调接口,分别是doget和dopost,但它们对于后端来讲本质上也是没有任何区别的,有一些比较厉害的架构师明白这点会把doget回调到dopost,这样设计的restful框架就能同时兼容前端的get和post调用
第三问:ArrayList是否是线程安全?
我答:不是的.具体为何没了解过
第四问:说说数据库映射?
我答:数据库映射主要用的是java的反射机制,好比数据库中有个字段叫xxx,那么对应的它的实体类就会有一个getxxx的方法,这时候用java的反射机制建立对应的实例,而后再调用getMethod()找到对应set方法,就能够把字段的值射进去
第四问:说说你的指望酬薪?
我答:6k(真的是瞎乱答的,如今想起来真想抽本身一巴掌)
(面到这里面试官已经有些不开心,叫我回去多点准备下,我说谢谢前辈我下一年大四实习再来)
整个面试过程我太紧张,不少都说得逻辑不通,不过这是我第一次面试,紧张也是不免
而后祝我2019年9月yy秋招能顺利经过,你们一块儿加油(#^.^#)