下载  >  开发技术  >  Java  > java高级软件工程师面试题及答案

java高级软件工程师面试题及答案 评分:

java高级软件工程师面试题大全及答,挺详细的,比较全面的面试题,愿对于正在找工作应对面试的朋友或许有点帮助。
」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 28、你认为一个项目如何进行才正确? 29、你经常看或仔细研读过的书有哪些? 30、你认为你应聘我们公司的项目经理,你自身的优势在哪? 31、你认为项目中最重要的是哪些过程 32、如果给你一个4-6个人的Team,那么你怎么分配他们、管理他们? 33、简述常用的软件开发文档 34、简述类的关系 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 注:下面是面试题答笑,答笑根据自已所学知识整理,仅供参考,不保证正确性。 1、类、对象的概念: 1)类:具有共同属性和行为的对象的抽象。类是创建对象的模板。 2)对象:现实世界中的实休。在计算机中,是指可标识的存储区域 3)类是对象的抽象、对象是类的实例 2、抽象:是从特定的实例中抽取共同性质形成一般化概念的过程 3、接口与抽象类 1)接口和抽象类都用于抽象,接口是抽象类的抽象。 2)接口中只有方法声明,没有实现(无方法体):在接口中声明的方法具有 public和 abstract属性,一个类可以实现多个接口(即多继承),接口以 分隔;接口中的方法必须全部实现 3)抽象类可以有部分方法实现,抽象类必须通过继承才能使用。 4、内部类( Inner Class): 1)内部类是嵌套在另一个类中的类。 2)内部类用于名称隐藏和程序代码的组织,另外内部类拥有直接访问其外部 类所有成员(包括 private的)的权限(无需任何关键字修饰)。 3)内部类不可以在其他类或main方法里实例化,必须使用如下方法(非静 态内部类) 外部类.内部类对象名new外部类(.new内部类( 静态内部类调川方式: 外部类.内部类对象名new外部类.内部类 4)非静态内部类不可以声明静态成员;静态内部类的非静态成员可以访问其 外部类的静态成员,声明为静态的成员不可以访问外部的非静态成员。 5、访问修饰符限制: Private protected friendly(default) public 同类YYYY 同包不同类NYYY 同包了类NYYY 不同包不同类NNNY 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 不同包子类NYNY 6、 Static关键字的使用 1)类成员,直接使用类名.成员调用 2)静态方法只能访问静态成员。 3)静态方法不能使用this、 super关键字。 4)静态方法不能被非静态方法重写或重载。 7、 final关键字 1)被 final修饰的变量为常量不能改变。 2)被 final修饰的方法不可以重写。 3)被 final修饰的类不能被继承 8、 abstract关键字: 1)被 abstract修饰的类不能实例化。 2)被 abstract修饰的方法只能在子类中实现 native关键字:非Java语言的编写,例如JNI技术 10、 synchronized关键字:多线程的同步访问控制 1、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的 通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必 须声明抛岀可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获 的运行时异常。 ( Throwable是所有Java程序中错误处理的父类,有两种资类: Error和 Exception Eror:表示由JWM所侦测到的无法预期的错误,由于这是属于JⅦM层次的严 重错误,导致JⅧM无法继续执行,因此,这是不可捕捉到的,无法采取仼何恢 复的操作,顶多只能显示错误信息。 Exception:表示可恢复的例外,这是可捕捉到的 Java提供了两类主要的异常: runtime exception和 checked exception checked异常也就是我们经常遇到的10异常,以及SQL异常都是这种异 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行 catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆 catch块 去处理可能的异常。 但是另外一种异常: runtime exception,也称运行时异常,我们可以不处 理。当出现这样的异常吋,总是由虚拟机接管。比如:我们从来没有人去处理 过 NullPointerException异常,它就是运行时异常,并且这种异常还是最常见 的异常之 出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果 没有处理块,到最上层,如果是多线程就由 Thread.runO抛出,如果是单线程 就被main○拋出。抛岀之后,如果是线程,这个线程也就退出了。如果是主程 序抛出的异常,那么这整个程序也就退出了。运行时异常是 Exception的子 类,也有一般异常的特点,是可以被 Catch块处理的。只不过往往我们不对他 处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常 之后,要么是线程中止,要么是主程序终止。 如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出 队列里面岀现异常数据了,正常的处理应该是把异常数据舍弁,然后记录口 志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理 可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其 它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行 时异常,或者是通过对异常的处理显式的控制程序退出。 异常处理的目标之一就是为了把程序从异常中恢复出来 12、编程题:写一个 Singleton出来。 Singleton模式主要作用是保证在Jaa应用程序中,一个类 Class只有一个实 例存在 一般 Singleton模式通常有几种种形式 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 第一科形式:定义一个类,它的构造函数为 private的,它有一个 static的 private的该类变量,在类初始化时实例话,通过一个 public的 getInstance 方法获取对它的引用,继而调用其中的方法 public class Singleton private Singleton(h //在白己内部定义白己一个实例,是不是很奇怪? //注意这是 private只供内部调凋用 private static Singleton instance- new Singleton( /这里提供了一个供外部访问本 class的静态方法,可以直接访 public static Singleton getInstanceo i return instance 第二种形式: public class Singleton private static Singleton ins lance null public static synchronized Singleton getInstanceo 1 //这个方法比上有所改进,不川每次都进行生成对象,只是第 次 //使用时生成实例,提高了效率! if (instance==null instance=new Singleton( return instance 其他形式 定义一个类,它的构造函数为 private的,所有方法为 static的。 一般认为第一种形式要更加安全些 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 13、分类列举服务器和组件技术 1)服务器端技术:Jsp、 Servlet; 2)组件技术: Javabean、EJB。 14、Http与 Https: Https即多了安全的Http,s( Security socket laver) 指加密套接字协议层(简写SSL)。 15、0SI(0 pen System Interconnection)网络抽象模型: 1)由国际标准化组织(ISO)提出。 2)将互联网分为七层,从下至上分别为:物理层( physical1)、数据链路层 ( data link)、网络层( network)、传送层( transport)、会话层( session)、 表示层( presentation)、应用层( application)。底层通过提供接口支持 上层功能。各层详解 物理层: LAN/ATM,为硬件层。 数据链路层:LAN/ATM 网络层:IP协议,I0S 传输层:TCP/UDP协议,支持 Java Socket。 会话层: 表示层:HTML、XML 应用层:HTTP协议,使用JavaServlet/JSP <第八层(Web服务层):SOAP/UDI> 16、J2EE的容器与服务器 容器负责EJB组件中生命周期的控制 服务器包含在容器外,提供系统级操作底层服务,包括事务、事件、多线 程 17、继承限制: 父类对象不可以赋给子类对象,因为子类可能具有更多的成员,反之可以 18、逻辑操作:c=(a>b)?a:b;等同于下式 if(a)b) c=a; else c=b 19、列举常见集合框架类型 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 1)List、Set、Map。出这三个接口实现出 Arraylist、 Linkedlist、 HashSet、 TreeSet、 HashMap、 TreeMap等常用集合框架 2) Vector属于重量级组件不推荐使用。 3)Map类型维扩键/值对, Hashtable与 HashMap相近但效率略低于 HashMap 高于 TreeMap, TreeMap优点是可以排序, 4)Set类型可装入唯一值, Hashset效率高于 Treeset但 Treeset可以维护 内部元素的排序状态 5)List类型可按某种特定顺序维护元素。 Arraylist允许快速随机访问, 如果添加或删除位于中间的元素时效率很低: Linkedlist提供最佳循序访问 及快速的中间位置添加删除元素,并有 addfirst、 addlast、 getFirst、 getlast、 removefirst.、 removelast方法。 20、面向对象的特征: 1)继承:通过子类可以实现继承,子类继承父类的所有状态和行为,同时添 加自身的状态和行为。 2)封裝:将代码及处理数据绑定在一起的一种编程机制,该机制保证程序和 数据不受外部干扰。 3)多态:包括重载和重写。重载为编译时多态,重写是运行时多态。重载必 须是同类中名称相同参数不同(包括个数不同和类型不同),但返回类型不同 不构成重载;重写发生于子类对父类的覆盖,子类继承父类方法名相同、参 数列表相同、返回类型相同才构成重写。 21、Java命名规范:必须以英文字母、下划线(’’)或’$’开始,其余可 以有数字但不允许包含空格,且组合后的名称不能是Java关键字或保留字。 匈牙利命名法:以m开始为类成员变量,以g开始为全局变量,以v开始为 本地局部变量,常量命名一般不以下划线、美元符开始 驼峰命名:一般称由多个单词或缩写组成的变量名,并且该变量名每个单词 首字丹均为大写(一般类名全部首字丹大写,方法或属性名第一个字小写) 的称为驼峰命名。 22、Java语言共包含47个关键字 23、设计模式: 」ava开发QQ群:51839733,3无广告、无买卖,这里只有程序猿(媛) 一个设计模式描述了一个被证实可行的方案。这些方案非常普遍,是具有完 整定义的最常用的模式。一般模式有4个基本要素:模式名称( pattern name) 问题( problem)、解决方案( solution)、效果( consequences)。 常见23种模式概述 1)抽象工厂模式( Abstract Factory):提供一个创建一系列相关或相互依 赖对象的接口,而无需指定它们具体的类。 2)适茁器模式( Adapter):将一个类的接口转换成客户希望的另外一个接 。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作 3)桥梁模式( Bridge):将抽象部分与它的实现部分分离,使它们都可以独 立地变化。 4)建造模式( Buil der):将一个复杂对象的构建与它的表示分离,使同样 的构建过程可以创建不同的表示 5)责仁链模式( Chain of Responsibility):为解除请求的发送者和接收 者之问耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链, 并沿着这条链传递该请求,直到有一个对象处理 6)命令模式( Command):将一个请求封装为一个对象,从而可用不同的请 求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。 7)合成模式( Composite):将对象组合成树形结构以表示“部分一整体” 的层次结构。它使得客户对单个对象和复合对象的使用具有一致性 8)装饰模式( Decorator):动态地给一个对象添加一些额外的职责。就扩 展功能而言,它能生成子类的方式更为灵活。 9)门面模式( Facade):为子系统中的一组接口提供一个一致的界面,门面 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 10)工厂方法( Factory Method):定义一个用于创建对象的接口,让子类 决定将哪一个类实例化。 Factory Method使一个类的实例化延迟到其子类 11)享元模式( Flyweight):运用共享技术以有效地攴持大量细粒度的对象。 12)解释器模式( Interpreter):给定一个语言,定义它的语法的一种表示, 并定义一个解释器,该解释器使用该表示解释语言中的句子。 13)迭代子模式( Lterator):提供一种方法顺序访问一个聚合对象中的各

...展开详情
2017-09-19 上传 大小:564KB
举报 收藏 (1)
分享

评论 下载该资源后可以进行评论 共1条

woshigaoshou980 一分都不想给,完全是网上找的基础题。还12积分太贵了。
2018-04-04
回复