【原创】来试一下公司的面试题

来源:互联网 发布:淘宝请人刷一单多少钱 编辑:程序博客网 时间:2024/06/06 06:48

一个公司的面试题如下,看看你能答出多少个。

1. 请谈谈如何看待开源软件,如何在项目中使用开源软件

2. 软件开发和软件服务的关系是什么?软件项目在实施过程中如何确保项目的进度和质量?

3. AB省和C省都有某软件产品的项目,并已经上线。假设他们之间有80%是相同的,那么如何建立版本库和项目开发流程?如何利用流程确保D省新项目的实施?

4. 面对用户越来越高的UI要求,你会选择什么UI技术去架构一个Web应用程序(不考虑周期和成本)。

5. JDK 1.6 的新特性,您使用过哪些,你觉得哪些特性在您负责的哪些项目中是起到关键作用的?

6. 对于JDK 1.6,您能为它有能力有效管理到多少线程?A 100左右 B 1000左右 C 10000 左右 。如果一个应用需要使用大量的内存,您有两种方式,第一,使用64位系统,让JDk寻址到4G以上内存;第二,软件采用分布式,使用多个JVM。请分析两种方式的利弊

7. 假设需要读取大量操作系统的文件,文件大小在5M左右(只读)。请给出Java代码,描述您认为最高效的方法。

8. 假设某应用程序,需要实现如下功能:
    1.
保存用户话单,并提供按照主叫电话号码和被叫电话号码两个条件查询话单的功能,此外并无其他要求
    2.
每天话单量在500G左右
    3.
需要保存30天的数据
    4.
要求按天查找的响应控制在5
    5.
支持100查询并发
  
请给出一个概要的架构设计,包括软件和硬件

 

---------------------------------------------------------我是分割线----------------------------------------------------------

自己试着答一下,希望有兴趣的人参与啦。

1 回答这个问题,要从开源软件的特点上来说。开源软件的参与者,一般来说,可以总结为“自由,参与,奉献,沟通”,基于这个特点,开源软件是灵活性很大的,它们提供的功能很强大,但是里面的稳定性,可执行性,效率和商业软件来比,还是有很大的不足。所以,在项目中使用开源软件,要遵循这个原则,那就是能提高我们的效率,让我们开发变得简单的开源代码,我们可以拿来使用,对于压力比较大的模块,我们不能将希望寄托于开源软件上,我们需要借鉴,形成我们自己的东西。最重要的是一个问题是,开源软件,拿来做应用是免费的,但是如果要把它作为你产品的一部分,这个是收费的,所以在产品中,使用开源软件,一定要仔细阅读它开源的协议。

2 软件开发和软件服务是相辅相成的关系,软件开发时软件服务的基础,同时,软件服务又是软件开发的指导的方向,总结行业共性需求性后,就可以形成我们自己的一套产品。软件项目在实施过程中如何确保项目的进度和质量,这是一个比较大的问题,我想可以这样来看。进度和质量在软件开发中,可以说是一个矛盾体,有的时候,我们可以发现,保证进度,我们牺牲的可能是软件的质量,保证质量,我们耽误的可能是软件的开发进度,如何来和谐解决这个问题呢,最重要的,是要看客户的要求和软件产品所在行业的特点。金融行业,对于质量的要求很高,但是OA类似的应用,对于质量相对来说就没有金融行业那么高,如何控制这两个方面,没有一个不变的解决方案,具体的问题,还需要具体的分析。

3 这个问题也比较有意思,里面涉及到版本管理和开发流程两个方面。对于第一个问题,同一个产品,我们再解决行业内共同的问题时,我们的处理是相通的,对于个别的特殊需求,可能是不一样的。这样就需要这个产品在设计的时候,要考虑到这个问题,将共通的解决方案作为产品的核心,特殊需求,作为一个外挂式的模块,挂到我们的应用上。从配置管理来说,我们可以建立三个项目,将共通的部分处理,作为一个共享的部分来控制,不同需求方面,我们可以作为不同的工程来做。例如Java中的jar和.net中的dll。保证下一个产品的应用和实施,配置管理上,要准确这个特点,从流程上,我们要采取严格的版本控制即共通部分的维护和新功能的开发两部分。

4 UI部分是展现给客户的部分,它要求简单的操作流程,炫目的表现形式,.NET中有siverlight,java中有JavaFx,Adobe有flex,各有各的优缺点,如果让我选择,我选择flex+java来架构我的软件。

5 -8 这个属于技术问题了,大家查文档吧。

 

原创粉丝点击