面试知识以及个人发展思考


       技术的路,很艰辛,也很苦,要不要在上面持续的走,走的如何,是需要一直思考的问题,个人发展中,定期性的思考

与总结是非常重要的,定期的自我反省,做一些发展规划,用一些别人的经验做自我考验,是很重要的。

       不论需不需要换岗位,自我心中,应长存着面试的镜子。只有面试,才能将自己的特色在限定时间与限定问题上表达出

来,而这也是今后发展的一块基石。

面试官说:


就像当年别人面试我的时候那样,我会这样去面试别人:
    1 从简历里挑出我最关心的他所会的技能,比如最近我希望招一个JS高手,最好精通Dojo(我说的精通是真的精通)。
    2 我会问他最擅长的技术(如果此技术不是我们最需要的那个),如果他最擅长的技术都语焉不详,那就没什么意思了。
    3 我会问某项技术全貌上的问题,比如会让对方谈谈Dojo的整个架构,是怎么解决JS领域的一些核心问题的。
    4 我会问一些技术细节,比如Spring的声明式事务处理是怎么实现的,因为这一个问题就暗含了AOP的概念和如何实现,代理模式,线程,JDBC事务处 理。如果应聘者看过Spring的源代码,那么说明此人能够花心思追究技术更深层次的东西,具有优秀程序员一个优秀品质:好奇心。如果应聘者没看过 Spring的源代码,他能回答上来,说明此人各方面基础知识扎实并能融会贯通去解决问题。同样我会问Hibernate的延迟加载是怎么实现的。
    5 我会问一些工程性问题,比如Spring的依赖注入,Scope为Session的Bean如何注入到Scope为Singleton的Bean。比如如何调整Hibernate查询性能。比如数据库索引会在什么情况下失效,原理是什么。
    6 我会问一些解决方案,比如如何重启服务器后,依然能够保持Session。
    7 我会问一些企业开发中特别重要的问题对方是如何理解的,比如事务,并发,内存管理,异构系统整合,数据库性能优化。
    8 我会问一些特别基础的问题,比如HashSet是如何判断新添加的对象是否已经存在的,如果已经存在,它是不再放进去,还是放进去覆盖之前的。比如ClassLoader的工作原理。
     
      当我面对一些工作了四年以上的人时,多少是有点惴惴,因为会担心对方很牛,我却挖掘不出。后来请教了一位工作了六年的同事,他说一个简单的原则是:
      问他你目前在项目中遇到的问题,因为这些问题都是大家讨论的,深思熟虑的,然后问他的解决方案



面试者说:


       昨晚躺在床上思考良久,一是如何抉择,二是总结面试经验。抉择尚不 明确,先分享些求职心得吧。
       概括起来就三个词:自重、自信、自谦
  解惑:为什么三个词都要带一个“自”字呢,是因为我想表达一个中心思想:成与败都取决于自身原因。
  首先,谈谈自重,就是不要失约于人,这是求职的第一步,所以一定要做好,别人满怀希冀的等你去面试而你却放人鸽子,想想人家的感受是多么的不好。前几天我就因为时间安排上的疏忽,失约了一次面试,虽然事后有过特地致歉,但依然耿耿于怀。
   其次是自信,这一点相信咱们都知道。在经过笔试后的面谈过程中,无论之前的题做的好不好,都要给自己一个相对明确的估分,明确自己的亮点,正视自己的不 足,坦然以对面试官,谈到自己熟悉的,要淡定,用最有说服力的语言来表达清楚。问到自己不了解的,不用慌,先坦诚以告,然后结合自己熟悉的与之相关的知识 谈谈自己的推想,体现出程序员独特的思维能力和学习能力。
  不过自信也要有个度,切忌给人以自负的感觉,要懂得自谦。很多应届毕业生都敢于在 简历中处处写精通,让招聘者摇头苦笑,也许这就是很多企业不要应届生的原因之一吧,刚毕业时都有些自负,尤其是专业基础比较好的同学。当然,有经验的同仁 也要明白天外有天,在充分表现自己的同时给面试官以足够的尊重,哪怕你觉得面试官能力真的不如自己,都要尊重他,既然能被派来面试你,那就是有一定本事的 人,要用心去面对。
  总之,在求职过程中,做事之前先要学好做人。
  由于入职在即,需要做不少准备,某些观点没时间具体论述,还请前辈们海涵。
  希望我的一点心得能给同仁们带来一点收获。

       主要把spring的IOC,AOP,事务处理这几块的原理和IOC的源码给研究了下,接着是struts1的核心源码做了下研究。


面试题


1、说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
2、用java怎么实现有每天有1亿条记录的DB存储?mysql上亿记录数据量的数据库如何设计?
3、mysql支持事务吗?DB存储引擎有哪些?
4、mvc原理,mvc模式的优缺点,如果让你设计你会怎么改造MVC?
5、hibernate支持集群吗?如何实现集群?
6、tomcat 最多支持并发多少用户?
7、map原理,它是如何快速查找key的?map与set区别?
8、描术算法,如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。内存只有1G???
9、在1亿条用户记录里,如何快速查询统计出看了5个电影以上的用户?
10、Spring如何实现IOC与AOP的,说出实现原理?

 

1.JVM的三个代是什么,各有什么作用和区别

2.远程方法调用和分布式相关的东西,还是远程JNDI..........

3.HashMapHashTable的区别,更快的map结构是什么,并且要求是线程安全

4. 项目中用到的框架struts1struts2的区别,struts1的流程,struts2的流程,为什么要用,你觉得劣势在哪儿

5. Hibernate的框架,流程,对项目的帮助,一级缓存,二级缓存,与ibatis的区别,iBATIS的架构。

6. JVMgc,哪些回收策略,怎么判定是否该回收,不同的场景(高并发、低响应等)下如何选择策略

7. 说说你做的项目,流程,角色,用了哪些设计工具,流程图,时序图

8. 设计模式,手写单例、简单工程、模板方法三个的案例代码,其他的简要说说,如策略、适配器。

9. SPring原理,IOC\DI 面向切面 ,如何实现的,事务管理

10. 平时去哪些web2.0网站,让你设计微博,你觉得最会出现性能的地方在哪儿(其实就是问微博如何把一条消息最短时间通知几十万的粉丝),如何解决

11.平时去哪些技术网站,关注哪些牛人的文章,最近看的最深刻的一片技术文章是什么

12. 自己实现下string的compare函数?

13. 单例的类是否可以继承?

14. 数组创建后是否可以改变大小?       

15. 让你假装给一帮刚入学的大学生讲讲数据结构?

16. 谈一谈java的多线程?

17. 以前用过那些设计模式?

18. 递归转成非递归的实现(用循环) 

19. 约瑟夫问题 

20. io文件流编程 

21. sql实现 

22. 分页的实现与原理  

23. 从事的项目开发阶段有哪些具体规范 

24. weblogic集群部署详细设置过程 

25. 详细说明oracle分区与sharing技术 

26. 你觉得深刻理解oo思想的要素有哪些 

27. 从事过的jee项目的技术亮点有哪些


思靠一些个人因素:

       hr 

       自我介绍\离职原因\工作内容\从事过单位之间的比较与好坏\对本公司了解多少\为什么会选择这边\导致离职的首要要素\个人优缺点\个人性格\个人的职业方向与侧重点\进行过哪些测试 \目前薪水\期望薪水及个人达到此目标的能力... 

       主管    

       自我介绍\离职原因\工作内容\个人优缺点\项目中工作流的具体实现\具体案例开发流程与组织结构\项目中的问题及解决\项目中做的好与不好的地方有哪些\设计模式及应用\知识来源\...

因为我用的比较多的是MySQL和Oracle。
请问你这两个数据库熟悉吗?
知道事务吗?
事务有哪些隔离性?
事务的并发是怎么实现的?一般有几种你知道的实现方式?
你知道数据库的锁吗,有哪些锁类型,对于MySQL不同的引擎有哪些不同的锁机制。例如什么引擎有什么样的锁?

Oracle有哪些类型的锁?为什么说Oracle里面没有锁升级的概念?为什么MySQL里面需要锁升级?
Oracle和MySQL都用多版本并发控制也就Multi Versioning Concurrency Control。MVCC。能知道他是怎么样的一个机制吗?有什么样的好处?
对于不同的隔离性,哪些是可以使用MVCC,哪些是不能使用?

知道Latch,也就是闩,Oracle什么时候会用到呢?

为什么说有些数据库的锁加的越多,需要升级锁,因为锁对于哪些数据库是一种宝贵的资源,而对于Oracle来说确不是这样。Oracle是怎么做到的?
跟Java里面的锁有什么相同和不同的地方?
Java的Synchronized和Compare And Set有什么不同吗?什么时候会用Compare And Set,Java JDK里面有实现吗?
对于锁资源的管理来说,锁管理是怎么样的一个实现呢。是队列吗,是Hash吗?如果让你实现你会怎么实现?

我记得Java分配对象的时候也需要有某种锁,所以对于每个线程会预先提供一些内存空间,因为是线程内的,所以就不会和多线程竞争内存空间,你觉得我说的对吗?你有了解,能更清晰的解释这个机制吗?

 

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