zoukankan      html  css  js  c++  java
  • 我的面试经历


    最近一直忙于找工作,面了几家公司,有些问题临场答的不好,但也对面试和笔试
    中的问题和自己的回答如实的进行下记录,希望对自己未来再跳槽以及现在正在找
    工作的朋友们有用。


    公司一:网上清算平台/嵌入式公司

    1.谈谈你对IoC的理解

    答:IoC即控制反转,反转的类之间的依赖关系。通过反转,让依赖方被动地
    等待外层注入被依赖的类,而不是自己去主动寻找。这样就可以为依赖方注入
    不同的实现,从而使程序更加灵活,易于改动和测试。

    2.SSH的适用范围?有什么缺点?

    答:在原来公司业务十分复杂的大项目中,可能通过存储过程和直接用POJO开发
    更加灵活。(答的不太好,应该从Struts、Spring、Hibernate逐个说,各个击破)

    3.UML中的用例图和时序图都是用来做什么的?

    答:一个用例图一般代表对应用户需求的一个功能描述,(有些像敏捷开发中的
    用户故事,在心里想的,记不清了没有说),而时序图可以用来表示类或者组件间
    的调用关系,可以清楚地看出程序是如何运行的。

    4.在以前公司做过什么软件设计?写文档吗?

    答:做过一些详细设计,但是原来公司比较缺乏文档。

    5.接口和抽象类的区别

    答:语法上接口只能有方法声明和常量,而抽象类可以有变量以及实现了的方法。
    从用法上来说,接口就像契约,是一种对应用程序应该提供的功能的约定。而抽象
    类是对接口的部分实现,未实现部分实际上是延迟到了子类去实现。(同时还谈了
    谈以前用过的适配器模式)

    6.用过的比较复杂的设计模式

    答:最复杂的用过模板模式和桥接模式组合,实现了两套继承层次间的功能自由
    组合,解决了原来公司碰到的多个功能模块对应多种数据库的支持问题。

    7.听过里氏代换和开闭原则吗?

    答:在《Java与模式》中看到过,但现在记不住定义了。
    开闭原则就是程序应该对修改开放,易于修改。

    8.OOD有哪些特性?

    答:封装、继承、多态。

    9.谈谈你对多态的理解

    答:多态是在运行时对方法的动态调用,使类可以在其各个子类间自由切换。
    (答得也不太理想,如果能从方法表的角度深入说说应该会更好,能加分)

    10.一个字符串末尾可能有N个空格,如何去掉它们?

    答:用正则表达式直接匹配出除去某位空格后前面的字符(当时以为这道题是考正则
    表达式的就这么说了,结果正则表达式的语法差一点忘记了)。用程序实现,从字符串
    的末尾向前逐个字符遍历,直到第一个不是空格的字符。



    公司二:互联网/游戏/移动开发公司

    1.Java常见的集合类有哪些?说出几个已经同步的集合类?其他的怎样进行同步?

    答:Collection接口下常用的有List接口下的ArrayList和LinkedList,以及Set接口下的
    HashSet和TreeSet。Map接口下有HashMap和TreeMap,分别用数据结构中的散列表
    和红黑树来实现。

    同步的集合类有Vector和Hashtable,由于性能问题它们不太常用。我们一般可以用
    Collections中的synchronize方法对一般集合类进行包装,使其变成线程安全的。也可以
    使用concurrent包中的ConcurrentHashMap和CopyWriteArrayList等实现。

    2.Struts1和Struts2的主要区别

    答:从前端Servlet改成了前端Filter,有很多很有用的内置Filter;没有ActionForm了,
    加入了OGNL包,像个粘合剂,将前台数据复制到POJO对象中;对J2EE的API耦合更小
    了等等。

    3.除了SSH,使用过哪些开源框架?

    答:(答得不太好,随口说了几个apache的常用的包)。

    3.JSP有哪些内置对象?

    答:page、session、application。(request还有其他的out什么的都忘记说了)

    4.Ajax的执行流程

    答:首先在JS中通过特定浏览器的Ajax对象异步地发出请求,发出请求后立即返回,
    服务器通过调用回调函数来返回结果。

    5.怎样从一张表中取出前20条数据?

    答:select top 20 from ... (数据库方面竟然就考了这么一道题)

    6.用过MySQL没?

    答:项目中没有用过,但是自己平时自学过,还在新浪的SAE上用PHP和MySQL建了
    个自己的小网站。(没有项目经验只能这么说了)



    公司三:外包项目公司

    1.private、default、protected、public的区别

    2.String和StringBuffer的区别

    3.类的初始化顺序

    4.wait()和sleep()的区别

    5.一个线程正在执行一个对象的synchronized方法,其他线程还可以调用这个对象的
    方法吗?

    6.说说工厂模式和单例模式的用法和作用

    7.如果两个字符串的每个字符的个数相同就认为相等,比如"aba"和"baa"是相等的。
    写出伪代码实现这个方法。



    总结:面试的一些感想

    虽然有的公司没有要求自己带简历,面试时HR会帮着打印一份。但为了显示对面试
    的重视,还是应该自己随身带着一份,以备不时之需。另外带上一本记事本、一根笔,
    对方介绍公司情况、福利待遇时记一记,相信也会留下不错的印象。

    大公司喜欢先笔试考基础,然后再复试面人,而小些的公司直接面试。外包的公司
    不分大小都比较重视软件设计、UML以及文档编写方面的经验。所以复习时除了基础
    知识,也要对这些周边的知识全面复习(时间允许的话)。

    比较详细的Java复习计划:

    (1)Core Java: Collection, IO, Thread, Socket
    (2)J2EE: Servlet/JSP, Struts, Spring, Hibernate, MyBatis
    (3)Web: Ajax, jQuery
    (4)SQL: SQLServer, Oracle (order, group, join)
    (5)JVM: classloader, gc, optimized
    (6)Linux: shell, perl
    (7)Design pattern/UML
    (8)Algorithm: string, sort, tree

    一直也没碰到对技术要求比较高的公司,几乎没有碰到任何算法实现、JVM优化的问题。
    但不能掉以轻心,还要认真复习!愿每个人都能去上自己心仪的公司!

  • 相关阅读:
    Java用freemarker导出word
    springMVC集成缓存框架Ehcache
    java爬虫入门--用jsoup爬取汽车之家的新闻
    基于全注解的SpringMVC+Spring4.2+hibernate4.3框架搭建
    spring aop实现日志收集
    ELK + kafka 日志方案
    大数据挖掘方案
    elasticsearch例子(crud + 分页)
    分类(category)是门学问
    英语单词辨异 —— 容易理解错的单词
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157815.html
Copyright © 2011-2022 走看看