20170818 有赞 电话面试总结

其实本人不怎么喜欢电话面试,因为他来的总是很突然,电话没打来之前我又不知道会是电话面试,之前也没有说,只是告知我简历已收到,有消息会联系,仅此而已。
博主是昨天快下班时接到电话,当时一看是陌生电话没有去理会,后来发了信息给我说要电话面试,这我不就更不敢接了,一点准备都没有,而且还在工位上,想想算了,又没有接电话也没有回短信,假装没看到吧。
下班的时候想想回过去吧,说不定面的比较简单,试试吧,总不能机会来了还一次次闪过。
面试的整个过程持续了40分钟,我是一路走回去一路面试,路上比较吵,说实话也没什么心情,一点准备都没有,就是抱着蹭个面经的想法。
起初让我介绍一下我做的东西,讲真,这个确实没有好好准备,前期是迭代开发,做的是零零散散的需求,并且事实上我只做了一个版本吧,后面就投入到重构的中间件部分了,所以让我讲讲业务真的不怎么好讲,我只能说做迭代,改造接口,新增接口,都是现有的框架套路照着做就好了,这就是做外包的弊端,根本接触不到什么精妙的技术,工程下下来都没法单独启动,甚至有多少个模块多少个分层都搞不清楚,至于中间件的部分,我做的无非是先学习这一块知识,但是为了照顾整个开发进度或者也可能是能力有限,我几乎只是局限于把环境搭起来,把项目跑起来而已,至于用到的每一个开源框架有什么精妙的地方,同类框架之间有什么独特的区别优势,讲真,我真的真的不清楚,只是老大告诉我,用这个那我就用把。这是我需要转变的一个地方吧,对什么东西都只求一知半解,以前在我学习java的时候,总是嘲讽那些钻牛角尖的人,现在看来是应该我被嘲讽吧,很多时候,尤其是在学习的时候就应该有那些钻牛角尖的人的精神。
所以事实上在项目这块,我没什么好说,他也没啥好问的。
后面他问我设计模式,我简历上写着了解常用设计模式,事实上我了解的也就是单例和工厂,他说除了这两个还知道其他的不,我知道一些名词 什么代理 装饰 适配器 等等,但是我说不清是啥,像这些东西就是看到的时候看一下然后好像懂了,但是根本没有融入我的思想吧,我要好好反思一下了,很久以前我就告诉我自己我的目标是CTO,也许每一个程序都是这么想的,我要当CTO,一直以来我觉得只要扩展知识面就行,不需要深入,CTO嘛,不就是管理的嘛,技术的什么实现让下面的人去搞,我错了,我现在的重点不是扩展而是深入。
再后面他又想问我框架,框架这一块我会用,spring springmvc hibernate struts2 mybatis 甚至jfinal等等,我都在工作和学习中用过,甚至毫不夸张的说我确实可以比较轻松的解决框架整合的各种问题,靠什么,靠百度,也许我根本没有很深入得想过里面的东西,每次看过想关文档,总觉得特别有道理,但是过一会又忘了,没有深入我的内部,没有成为我思想的一部分,这是我最失败的地方,我只会拧螺丝确不知道为什么要拧螺丝为什么可以把螺丝拧进去。
再后面问我集合框架,list set 区别 ,ok不得不说,这一点还是可以说出来,list里可以存放重复元素,set不能重复,list可以根据索引访问,而set需要迭代。然后我又说了list下面的arraylist linkedlist的一些特性还是set下面常用的treeset hashset,底层结构等等吧,这些东西在很久以前就很熟悉了,没有特别困难,还有set如何实现去重,我说底层是map实现,set的值存在map的key上,看似顺理成章的,他说底层,ok,通过hashcode和equal这些都是比较常规的。
在后面问我一个实例变量,多个线程访问出现线程安全的问题,我说了volatile,并说道主内存和工作内存,这一块之前是看到过的,有点印象,不过今天查了一下,volatile只是保持数据在多线程中的可见性,不能保证有序性和原子性,我说可以在方法上加synchronized使得线程同步,这个确实是正确,但是他说效率低,太重量级。他告诉我可以使用原子类,cas,ok这一块事实上我也看到过,只是根本没有当回事,根本没记住。
最后让我不用现成的方法实现string转int,好吧,当时是抽了。。。。。。
非常简单的代码,http://blog.csdn.net/ychenfeng/article/details/77395645

好吧,总结一下,学什么东西都不要只学表面,要知其然知其所以然!!

你可能感兴趣的:(面试总结)