forrestajun

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

毕业后,一直在一家传统软件企业工作至今,有好几个年头了。

这些年出现了大数据、云计算、互联网、虚拟化。。。虽感兴趣,但又没去了解,实际的工作不涉及,也无暇顾及。

但是,内心已经偏爱互联网了,发现再不去碰就out了,因此,半年之前就准备着换行。

没有那些应用经验怎么办,那么就扎实基础。

为什么要换,我一句话说服了自己:3、5年后,继续当前的工作有什么发展和收获?切换到互联网行业后呢,机会多多。

预期在元旦后开始投简历,但到了这一点才发现有点小压力,多年没有面过了,不知道外面到底怎么样。长期做维护性的工作,缺少项目经验是最大的短板。

哎,可能是心意已决,还是鼓起勇气投了几个本地的公司,2天过去了什么反映都没,本来找点面试经验后再投心仪的公司,看来是不行了,时间不等人,很快就到年底,于是马上就投了很多。

 

过了几天接到了几个电话面试,接着在另一个城市2天排了5场面试,时间挤得满满的,早出晚归,肚子饿的呱呱叫。

下面就面试大概总结下:

1、在出发的头晚准备收拾东西,结果晚上10点刚投了,洗个脸就接到电话,聊了一个多小时,手臂都酸痛了,最后说了句:优点和缺点都很明显。

  我知道优点就是基础比较扎实,有一定的理解,缺点就是互联网技术产品没用过,缺少应用经验。

  但是最后让我留意他们hr的电话,不知道是否优点可以掩盖缺点。

2、程序到底应该开启多少个线程,怎么优化?

  面试官以前是腾讯的,也就是腾讯系的创业公司,这是第一场面试,感觉牛逼的人果然不一样,之前为什么就没有考虑过这样的问题呢,也许是传统企业应用还没遇到这样的优化。但也不能什么都不说吧,工作几年的人了。

  回答:我们都是根据cpu核数来确定线程个数,一个cpu同一时间也只有一个线程在运行,线程多了会增加上下文切换时间,如果任务耗时较短的话,大部分时间就花在上下文切换上了。

  虽然没有正面回答,但是对线程的理解还是有的。

3、工作几年了,让你做一个管理系统,怎么设计架构?

  说实话,从没没有架构过一个大的应用。就根据流行的前后端技术搭建:前端->html+jQuery,后端->逻辑层用Spring,持久层用Hibernate,数据量小的话数据库用MySQL,大的用Oracle,交互采用rest请求。说到一半就去接电话,在的时候也是一直把简历翻来翻去,面试官回应就是继续说继续说。

4、netty优化过没?

  回答:没有用过,是io框架,还有MINA,但是知道io。接着就让我继续说,说了有几种模式的io,各种模式在jdk的哪个版本支持,并且特意说到nio用到的内存是direct memery,不是占用的堆内存,有些内存溢出就是这个导致(堆明明没有满)。

  幸好在看招聘信息的时候看到并了解了下,不然肯定傻眼。

5、如何实现一个HashMap?

  这种应该是非常见的问题了,程序中用得也非常多,肯定不能忽略。分析了下实现机制,并指出在多线程下死循环是怎么出现的,确实也遇到过死循环的例子,cpu占用100%,一看java堆栈大部分线程都在HashMap这里。 有些地方不太好表达,就想用笔划一下,但是面试官说不用,估计看得出我是理解的。

  但是,在谈到hash时,有人问知道hash一致性吗?不知道,不知道是不是要保证每次hash都一致的意思。这也提醒了自己,为什么没有延伸一下?

6、有个通知我去面试,我要求先电话面一下,先大概了解了解,不符合就不用折腾面试了,主要是我行程已经有点满了,没想到结果挺好。

  问了几个问题,谈下IoC、AOP、设计模式的理解。这些基础真的很熟了,从例子出发,也很好讲。在谈到设计模式的时候,我从5大原则开始到四人帮的23种模式,才把创建型的说完,就打断说够了够了。   心情从来没有这么舒坦过,设计模式第一次说得这么流程。心里暗暗自喜,平时的积累好值得。

7、调试这一块我简历描述的是熟悉,并列举了一些常用工具,当然也被某些面试官问到了。

  当然,常见的都没问题:怎么分析、常用命令。

  可有个问题歇菜:有个tomcat服务,但是进程突然没有了(好像意思是服务还在,但进程id没有),怎么弄?巧的是,还有一个面试官也问到。确实没有碰到,也没思路,就坦白了。

8、有个小伙子,感觉比我小点点,脸上胡渣子里细皮嫩肉的,问:何为架构?

  我说不清楚,其实不知道怎么讲。然后他换种方式问:写程序都用什么架构?卡擦,还是不知道怎么说,就瞎说了点什么业务逻辑调用dao之类的。

  结束后,想想,平时常说MVC架构,当时怎么没有朝这个方向说下呢。

9、什么是云计算?

  概念不知道怎么说,就举了个例子,是12306将春运的余票查询75%的流量放到阿里云上,好像还挺满意的。

  尼玛这个刚好是头两天看的一个新闻,看来平时真的要多关注it信息。

10、大数据、云计算。。。有什么了解,希望做哪个方向?

  知道概念,但是相关领域技术了解甚少,自己都不明确到底该玩哪个,这也是面试没有准备的,只知道自己想做互联网的东西。

  需要补的功课很多,多关注吧,不要太封闭了。

11、为什么要用rest url?

  真没有想过,看过也没有说出什么来。

12、有一个面试要求上机见习下,结果在搭建springmvc的时候,controller的url就是没生效,半个小时都没调出来。

  囧,虽然对它的原理清楚,而且还知道里面的主体逻辑源码。

13、面试后,也有问题随着困扰自己:到底选择哪样的公司?

  1、话说2年后上市,目前都没有配股,上市前会配;有些人是从百度腾讯过来,工作内容应该是完成业务开发、调优等。

  2、物流行业,他们的话说就是没什么高大上的技术,就是提供好服务,供app使用,工作内容估计是重构底层服务模块、调优等。

  3、云服务,类似阿里云,具体方向没说。

  4、新成立的是事业部,已由半年前的2人发展到了10人左右,今年会发展到30人,负责新模块的开发,可能什么都做,开发调优部署等。

 

总结:

  这几天面试虽然累了点,但是收获非常多。

  外面都需要些什么?都在做什么?为什么要这么做?

  尤其是在对新技术的运用时,一定要弄清为什么要用它,解决什么问题,如何架构,相关产品的区别?

  多了解热门技术,经常从头搞搞环境之类的基础操作。

 

posted on 2015-01-18 21:50  forrestajun  阅读(653)  评论(0编辑  收藏  举报