早上8点45到达软件园24 楼11层,本来时9点开始面试,一直等到9点30,面试官才匆匆来到。通知我们到会议室面试。
面试开始才知道是群面+英语面:
开始50分钟全部用英语
1.自我介绍(两分钟,自我评价):
我觉得重要的是 第一步,介绍自己;
第二步,说技术,让面试官知道自己精通XXXX,熟悉XXXX,了解XXXX,对XXXX在XXXX环境下的XXXX有深入的认识。
第三步,说一些做过的项目,做过什么样的项目家公司做的的体量使用人群是多少span>这个项目给我带来的经验是什么能够积累一定的行业资源span>
2.面试官用英语问一些问题,逐个回答(感觉这个应该是考察你的性格,当遇到困难时会怎样解决)
第一个问题,你在做项目或者学习生活中遇到过最大的issue是什么,最后怎么解决的;
最后50分钟用中文回答
3.面试官开始问技术上的一些问题,自由回答,别人接着你的补充,自己也可以补充。(考察技术能力)
第一个问题,封装是什么,怎么理解封装;(引出问题,什么是高内聚低耦合)
第二个问题,继承是什么;
继承是面向对象中一个非常重要的特性。通过继承,子类可以使用父类中的一些成员变量与方法,从而能够提高代码的复用性,提高开发效率。
几个特性:1.Java只用一个父类,不支持多重继承;
2.子类只能继承父类的非私有成员变量和方法;
3.当子类中定义的成员变量和父类中定义的成员变量同名,子类会覆盖不会继承;
4.子类中方法与父类的方法有相同方法名,相同参数与类型是,子类将会覆盖父类的方法,而不会继承。
第三个问题,怎么理解多态;
多态是面向对象程序设计中代码重用的一个重要机制,它表示当同一个操作作用在不同对象时,会有不同的语义,从而会产生不同的结果,如“3+4”和“3”+“4”。
Java中主要体现在
1.方法的覆盖;(运行时多态)
2.方法的重载。(编译时多态)
第四个问题,连接数据库的步骤;
1.加载JDBC驱动器;
2.加载JDBC驱动,注册到DriveManage;
3.建立数据库练级,取得Connection对象;
4.建立Statement对象或PreparedStatement对象;
5.执行SQL语句;
6.访问SQL语句;
7.依次关闭这些对象。
第五个问题,连接Oracle和连接MySQL有什么区别;
4.面试官针对个人提问。(考察项目经验)
第一个问题,struts1和struts2的区别;
http://blog.csdn.net/john2522/article/details/7436307
第二个问题,什么是面向方面编程;
http://blog.csdn.net/liuweitoo/article/details/8166503
第三个问题,Spring的核心机制是依赖注入,体现在哪些方面;
具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
第四个问题,你写过最复杂的算法是什么;
动态规划:动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表格式。
第五个问题,你觉得在众多排序算法中,哪种算法的速度最快;
快速排序和归并排序,不过排序的快慢和你的数据特征有关系,比如你的数据还是本来就是排好序的,那你不排序就是最快的了。查找还和数据结构有关系,是无序数组,还是有序数组,还是hash表,还是二叉树。
5.大家自由向面试官提问。(与人的沟通)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!