标签:破坏 的区别 XML 细节 购物 面向切面编程 数据结构 b站 jmm
阿里面试差不多一个月过去了,早就预料到了这种结果,终究还是进不去,这段时间从来没那么渴望过知识的力量,从没有那么渴望过一个好的学校出身,以前自己很弱小,很无知的时候,一直相信什么读书无用论,去你吗的读书无用论,如果你思维跟普通人差不多,那你就是个芸芸众生,总结一下从阿里一面到六面的技术面到底面了个啥,
还记得一面的时候,面试官:你学过Spring,讲讲Spring的ioc实现原理吧。啪啦啪啦讲了一堆。接着mybatis实现原理是什么,就是接口加动态代理啊。那你用过mapper.xml文件吧,能讲讲它如何映射的吗?
随后又讲了一堆。看你简历上写了解过Linux,那解压指令是什么,我很快回答出了 tar-zxvf
查看日志记录呢? cat more tail head说了一大堆。hashmap的底层实现原理是什么?数组加链表,为了装下逼,就扯了一下红黑树jdk8新特性 。既然说到jdk8新特性那你说说jdk8到底有啥新特性?lambda表达式。那你用过流式编程和响应式编程吗?到这里直接干懵逼了,这是啥玩意?没用过,不知道。然后你用过maven吗?用过。你用它干啥?主要管理项目jar包。那用过git吗?这时候开始表决心了,我下一个电力管理系统准备团队协作,就用github远程仓库,到时候好好学习一下。设计模式你学了哪些?单例模式,工厂模式,装饰者模式,策略模式。那你能挑一个讲嘛?果断挑了装饰者模式,讲了一下类图,很完美。用过线程吗?用过,写过一个生产者消费者。怎么实现的呢?这里就很过分了,扣细节,wait,notify方法的使用。到底在哪加,以及加的条件。你平时在哪学习业内最新知识,或者了解最新技术?果断回答开源中国,牛客网。
阿里二面,上来直接干,问项目,看你简历上写了购物车项目,能讲讲大概流程吗?记得很清楚扣细节,购物车是个map 放在了session里面。为什么不放数据库?因为购物车用户要一直修改,放数据库会io操作频繁。那如果我换个浏览器,购物车的数据还有吗?我此时被问倒了,确实没有。tcp三次握手怎么握的?syn同步号=1ack确认号=0 表示请求服务器连接,服务器愿意连接后 把ack改为1发给客户端第三次就可以直接发送数据包了。如何解决高并发问题?多线程啊。比如场景?服务器serversocket 【python中已有分析示例】指定一个端口 阻塞等待客户端连接,当客户端连接时,就形成一个socket句柄。但你还是没说如何解决高并发啊?然后跟我说你慢慢想一下,不急。在这等了足足大概10分钟,我瑟瑟发抖,根本不敢说话。那服务器监听在while循环外面 还是里面?果断回答里面。这时候面试官就有点不开心了。你讲讲死锁问题吧?讲讲如何解决死锁问题?死锁不应该提前避免吗?目前没遇到过。那自旋锁,偏向锁呢?没了解过。线程池用过没,有什么好处?用过,能够提高响应速度,统一管理,降低资源消耗。二分归并排序算法怎么实现的,能讲下吗?这里问的很细,问了递归里面是怎么写的,递归外面怎么写的。又卡住了,额......好了,继续等待后续通知吧!
接着阿里第三面来了,先自我介绍一下自己吧?啪啦啪啦讲了一大堆。你觉得自己最擅长什么?我模仿过tomcat服务器的上下文环境,通过sax解析我能知道请求资源,并最终放入map容器里,最后拿到用户的uri 如果容器中有 通过反射创建对象。大概这样子。那还有其他的么?在线聊天室算吗?怎么实现的?socket网络编程。你学习成绩怎么样?百分之三十左右。你平时怎么学习Javaee技术呢?b站。有时候看一些博客,有时候博客也不一定正确,就翻书。那你买过哪些书呢?深入理解jvm,mysql高级,g1 gc垃圾回收,并发编程的艺术。
大概一个星期左右,第四面,技术总监技术面来了,又是自我介绍一下,随后开始问快递排序是怎样的?我口述了一下。string ,stringbuffer,stringbuilder 的区别 ,一个是不断创建对象,不断回收。一个线程安全,一个线程不安全。哪个安全?stringbuffer。那volatile和synchronized区别是什么?跟面试官扯了一下jmm内存模型。还可以。红黑树是怎样的?Java中的红黑树吗?不问Java,就是数据结构?额,这不是很了解。二叉平衡树呢?也不是很清楚。b+树呢?就开始扯innodb和myisam存储引擎了!mybatis中insert返回类型是什么?int啊。int表示什么?插入成功几条数据返回几。${}和#{}底层实现原理是什么?不是很清楚。cookie和session的区别【javaweb中已有例题分析】是什么?一个存在客户端,一个存在服务器端。spring aop 是啥意思?面向切面编程,代理模式啊。代理模式?那动态代理有几种方式?两种,一种jdk动态代理,一种cglib动态代理。有什么区别?一种是知道接口,一种不需要知道接口。实现线程有几种方式?一种是继承thread类,一种是实现runnable接口,其实还有一种没回答,又讲了如何选择。这时候,面试官有点不爽了,我只问你如何实现,没问你如何选择。我建议为了表现自己对这方面熟悉也不要这样回答。jvm内存模型是什么,分别放了什么东西,你能讲讲吗?又讲了一堆。范型底层是怎么实现的,这个不是很了解。
一个星期后,又没有电话了,等电话再来时,技术部门校招已经满人了,此时简历被流浪到另外部门,开始新一轮面试了,我在想,如果不是因为学校差,或许我早被录取了。
阿里第五面,又开始自我介绍一下自己。面试官开始问了,第一个就问死锁问题。又是死锁?又是怎么解决,一样达不出来。死在两个地方死锁问题了。然后问看你拿了个程序设计天梯赛一等奖,是个什么性质的比赛呢?扯了扯编程题。你学过统计学吧?概率论啥的,我能问问题吗?我没怎么学诶,我把主要精力放在Java上,比较擅长设计模式。那既然讲到设计模式,你讲讲设计模式的原则吧?开闭原则,单一原则,接口隔离原则,李氏代换原则,还有其他忘了,那设计模式你项目有应用场景吗?好像没有,但我可以跟你讲个例子,将开始扯学过的知识了。那你知道b+树吗?又是b+树....我看你会用explain分析优化语句,可以讲讲场景吗?比如说一张表里面有千万条记录,那如果我查询语句查了很久才查出结果,那可能就要分析为啥这么慢了,那可能是没见索引,这时候为了提升查询性能,就要建立索引了。你知道hash算法吗?hashmap如何解决碰撞问题?线性探测法 和二次线性探测,再hash算法。那如果我要设计一个字符串的地址,怎样才是两个不一样的string呢?那可以拿到第一个字符乘以一,第二个字符乘以2这样算地址,但还是无法避免hash碰撞。我觉得你挺聪明,虽然你成绩在班上不是顶尖的,但是注重动手能力。。。这里我有点害怕,我怕他问有没有挂过科,其实我挂过科,我劝各位同学好好学习,不要挂科。随后开始问觉得这次面的怎么样,我说一般,还是有很多东西不知道,然后跟我耐心讲解 死锁必要条件,破坏任何一个,就不会发生死锁。
六面大概是前天吧,告诉一下怎么死的,死的很冤,因为他问我最近在学什么,我说在学js,然后又说你不是学后端的吗?咋学js去了?(个人觉得)这里你怎么说都不好,他会觉得你野心太大,不适合培养,三心二意,就算把你培养出来了,过不了多久也会离职,所以你要一心一意搞后端........有时候不要太老实了。太不值了.....
标签:破坏 的区别 XML 细节 购物 面向切面编程 数据结构 b站 jmm
原文地址:https://www.cnblogs.com/cc123nice/p/10897002.html