高级软件工程师面试题

上传人:xzh****18 文档编号:34574636 上传时间:2018-02-25 格式:DOC 页数:10 大小:62KB
返回 下载 相关 举报
高级软件工程师面试题_第1页
第1页 / 共10页
高级软件工程师面试题_第2页
第2页 / 共10页
高级软件工程师面试题_第3页
第3页 / 共10页
高级软件工程师面试题_第4页
第4页 / 共10页
高级软件工程师面试题_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《高级软件工程师面试题》由会员分享,可在线阅读,更多相关《高级软件工程师面试题(10页珍藏版)》请在金锄头文库上搜索。

1、高级软件工程师、项目经理面试题1、 类、对象的概念?2、 简述抽象?3、 接口与抽象类?4、内部类(Inner Class)?5、访问修饰符限制?6、 Static 关键字的使用?7、 final 关键字?8、 abstract 关键字?9、 native 关键字?10、 synchronized 关键字?11、运行时异常与一般异常有何异同?12、编程题: 写一个 Singleton 出来。13、分类列举服务器和组件技术?14、 Http 与 Https ?15、 OSI(Open System Interconnection)网络抽象模型?16、 J2EE 的容器与服务器?17、继承限制?1

2、8、逻辑操作:c=(ab)?a:b;等同于下式?19、列举常见集合框架类型?20、面向对象的特征?21、 Java 命名规范?22、 Java 语言共包含 47 个关键字?23、设计模式?24、简述 MVC 的应用(如 STRUTS1.x、STRUTS2.x 架构等)?25、WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。SOAP、UDDI,WSDL解释。26、存储过程和函数的区别?27、 游标的作用?如何知道游标已经到了最后?28、你认为一个项目如何进行才正确?29、你经常看或仔细研读过的书有哪些?30、你认为你应聘我们公司的项目经理,你自身的优势在哪

3、?31、你认为项目中最重要的是哪些过程32、如果给你一个 46 个人的 Team,那么你怎么分配他们、管理他们?33、简述常用的软件开发文档34、简述类的关系高级软件工程师面试题答案1、 类、对象的概念: 1) 类:具有共同属性和行为的对象的抽象。类是创建对象的模板。 2) 对象:现实世界中的实体。在计算机中,是指可标识的存储区域。 3) 类是对象的抽象、对象是类的实例。 2、 抽象:是从特定的实例中抽取共同性质形成一般化概念的过程。3、 接口与抽象类: 1)接口和抽象类都用于抽象,接口是抽象类的抽象。 2)接口中只有方法声明,没有实现(无方法体) ;在接口中声明的方法具有 public 和a

4、bstract 属性,一个类可以实现多个接口(即多继承) ,接口以 , 分隔;接口中的方法必须全部实现。 3)抽象类可以有部分方法实现,抽象类必须通过继承才能使用。4、 内部类(Inner Class): 1)内部类是嵌套在另一个类中的类。 2)内部类用于名称隐藏和程序代码的组织,另外内部类拥有直接访问其外部类所有成员(包括 private 的)的权限(无需任何关键字修饰) 。 3)内部类不可以在其他类或 main 方法里实例化,必须使用如下方法(非静态内部类)外部类.内部类 对象名=new 外部类().new 内部类(); 静态内部类调用方式: 外部类.内部类 对象名=new 外部类.内部类

5、(); 4)非静态内部类不可以声明静态成员;静态内部类的非静态成员可以访问其外部类的静态成员,声明为静态的成员不可以访问外部的非静态成员。5、 访问修饰符限制: Private protected friendly(default) public 同类 Y Y Y Y 同包不同类 N Y Y Y 同包子类 N Y Y Y 不同包不同类 N N N Y 不同包子类 N Y N Y6、 Static 关键字的使用: 1)类成员,直接使用 类名. 成员 调用。 2)静态方法只能访问静态成员。 3)静态方法不能使用 this、 super 关键字。 4)静态方法不能被非静态方法重写或重载。 7、 fi

6、nal 关键字: 1)被 final 修饰的变量为常量不能改变。 2)被 final 修饰的方法不可以重写。 3)被 final 修饰的类不能被继承。 8、 abstract 关键字: 1)被 abstract 修饰的类不能实例化。 2)被 abstract 修饰的方法只能在子类中实现。 9、 native 关键字:非 Java 语言的编写,例如 JNI 技术。 10、 synchronized 关键字:多线程的同步访问控制。 11、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求

7、方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。(Throwable 是所有 Java 程序中错误处理的父类,有两种资类:Error 和 Exception。Error:表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception:表示可恢复的例外,这是可捕捉到的。Java 提供了两类主要的异常 :runtime exception 和 checked exception。checked 异常也就是我们经常遇到的 IO 异

8、常,以及 SQL 异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行 catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆 catch 块去处理可能的异常。但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由 Thread.run()抛出,如果是单

9、线程就被 main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是 Exception 的子类,也有一般异常的特点,是可以被 Catch 块处理的。只不过往往我们不对他处理罢了。也就是说,你 如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如

10、此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。异常处理的目标之一就是为了把程序从异常中恢复出来。)12、编程题: 写一个 Singleton 出来。Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。一般 Singleton 模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用,继而调用

11、其中的方法。public class Singleton private Singleton()/在自己内部定义自己一个实例,是不是很奇怪?/注意这是 private 只供内部调用private static Singleton instance = new Singleton();/这里提供了一个供外部访问本 class 的静态方法,可以直接访问public static Singleton getInstance() return instance; 第二种形式: public class Singleton private static Singleton instance = null

12、;public static synchronized Singleton getInstance() /这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 /使用时生成实例,提高了效率!if (instance=null)instancenew Singleton();return instance; 其他形式:定义一个类,它的构造函数为 private 的,所有方法为 static 的。一般认为第一种形式要更加安全些13、分类列举服务器和组件技术:1)服务器端技术:Jsp、Servlet; 2)组件技术:JavaBean、EJB。 14、Http 与 Https:Https 即多了

13、安全的 Http,s(Security Socket Layer)指加密套接字协议层(简写 SSL)。 15、OSI(Open System Interconnection)网络抽象模型: 1)由国际标准化组织(ISO )提出。 2)将互联网分为七层,从下至上分别为:物理层(physical) 、数据链路层(data link) 、网络层(network) 、传送层(transport) 、会话层(session) 、表示层(presentation) 、应用层 (application) 。底层通过提供接口支持上层功能。各层详解: 物理层:LAN/ATM ,为硬件层。 数据链路层:LAN/A

14、TM 网络层:IP 协议,IOS 传输层:TCP/UDP 协议,支持 Java Socket。 会话层: 表示层:HTML、XML 应用层:HTTP 协议,使用 Java Servlet/JSP 16、J2EE 的容器与服务器: 容器负责 EJB 组件中生命周期的控制; 服务器包含在容器外,提供系统级操作底层服务,包括事务、事件、多线程。 17、继承限制:父类对象不可以赋给子类对象,因为子类可能具有更多的成员,反之可以。 18、逻辑操作:c=(ab)?a:b;等同于下式 if(ab) c=a; else c=b; 19、列举常见集合框架类型:1) List、Set、Map。由这三个接口实现出A

15、rrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap 等常用集合框架。 2) Vector 属于重量级组件不推荐使用。 3) Map 类型维护键/值对,Hashtable 与 HashMap 相近但效率略低于 HashMap、高于TreeMap,TreeMap 优点是可以排序。 4) Set 类型可装入唯一值,HashSet 效率高于 TreeSet 但 TreeSet 可以维护内部元素的排序状态。 5) List 类型可按某种特定顺序维护元素。ArrayList 允许快速随机访问,但如果添加或删除位于中间的元素时效率很低;LikedList

16、提供最 佳循序访问及快速的中间位置添加删除元素,并有 addFirst、addLast、getFirst、getLast、removeFirst 、 removeLast 方法。20、面向对象的特征: 1)继承:通过子类可以实现继承,子类继承父类的所有状态和行为,同时添加自身的状态和行为。 2)封装:将代码及处理数据绑定在一起的一种编程机制,该机制保证程序和数据不受外部干扰。 3)多态:包括重载和重写。重载为编译时多态,重写是运行时多态。重载必须是同类中名称相同参数不同(包括个数不同和类型不同) ,但返回类型不同不构成重载;重写发生于子类对父类的覆盖,子类继承父类方法名相同、参数列表相同、返回类型相同才构成重写。21、Java 命名规范:必须以英文字母、下划线(_)或$开始,其余可以有数字但不允许 包含空格,且组合后的名称不能是 Java 关键字或保留字。 匈牙利命名法:以 m 开始为类成员变量,以 g 开始为全局变量,以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号