问答题
1.抽象类和接口的区别是什么?什么情况下用抽象类,举例说明?什么情况下用接口,举例说明?
(1)一个类中只要有一个抽象方法则为抽象类,一个类中所有的方法都是抽象方法则为接口,接口是特殊的抽象类;
(2)一个类(除过Object)只能有一个父类,但是可以实现一个多个接口,即一个父亲可以有多个孩子,一个孩子只能有一个父亲;
(3)接口中的变量全部为全局常量,但是抽象类中的变量可以定义为任何类型的变量。
(4)抽象类中有构造函数而接口却没有。
在应用上的区别:
(1)接口的使用会更多一些,因为接口可以更好的隐藏具体实现的细节,从而降低系统的耦合度,提高可扩展性。
a)在我经常使用的设计模式当中,如工厂模式,依赖注入模式,DAO模式等,都大量的使用到了接口,这些接口通常是作为一个模块被外部程序调用的标准。比如说,在DAO模式当中,要求将所有涉及到访问数据的代码全都封装到DAO层当中,业务层只能通过DAO层所暴露出来的接口来访问DAO对象。这样设计的好处可以解除业务逻辑和数据访问逻辑的耦合。对于抽象类来说,通常将通用的、固定代码写在抽象类的非抽象函数当中,而对于一些经常变化的功能,则定义为抽象类的抽象函数,这样的设计方法可以减少重复代码,提升代码的可复用性。
b)在常见的J2EE相关框架当中也经常的使用到接口和抽象类,如Spring框架就是最好的例子,使用Spring的依赖注入容器可以更容易的实现面向接口编程。而在Sping当中的模板代理模式当中,也使用到了抽象类的特征。
总而言之,使用接口和抽象类之类的目的,就是为了能尽可能是减少系统当中的重复代码,提升系统的可扩展性。
2.谈谈如何检测和避免java应用中的内存泄漏问题?
(1)为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。
监视对象状态是为了更加准确地、及时地释放对象,而释放对象的根本原则就是该对象不再被引用。
(2)什么是内存泄漏?
内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。
(3)内存泄漏的例子
Vector v=new Vector(10);
for (int i=1;i<100; i++)
{
Object o=new Object();
v.add(o);
o=null;
}
//此时,所有的Object对象都没有被释放,因为变量v引用这些对象。
3.谈谈你在hibernate开发中知道的最佳实践或经验,从持久化类的编写注意事项、性能提高等方面阐述
4.谈谈如何提高java应用程序性能的解决方案?从编码风格、内存、IO、数据库、网络等你想到的方面来阐述?如果一个jsf+spring+hibernate+oracle的Java web应用程序响应慢了,你怎么分析,详细写出分析思路?
5.在设计数据库时,oracle/mysql/sql server中主键的值如何生成,各种方式怎么选择?
6谈谈你知道的所有java/j2ee程序中可能导致线程安全的问题,及其对应的解决方案?
编程和项目题目:
1.一个简单的图书馆Web应用程序项目,实现功能是对数进行简单的增加、删除和修改操作。采用jsf+spring+hibernate+oracle技术架构,如果安排你来实现DAO层,请写出完整的架构设计和关键代码。
1)本项目中DAO设计模式的类图和主要接口类定义;
2)用jdbc访问数据库的核心类实现、关键异常处理和关键配置文件;
3)用hibernate访问数据库的核心实现、关键异常处理和关键配置文件;
4)项目中的性能设计和事务处理设计。
相关推荐
公司内部驾驶员考试题目.doc
文档中的内容是关于公司内部驾驶员考试的题目及答案解析,主要涵盖了交通安全法规、驾驶操作规范、交通标志识别、应急处理等多个方面。以下是这些知识点的详细解释: 1. 道路交通安全违法行为累积记分周期为12个月...
从提供的压缩文件名来看,"公司.NET_内部测试机试题.doc"和"Dotnet1.doc"很可能包含了具体的考试题目和相关资料。这些文档可能涵盖了.NET框架、C#编程、ASP.NET Web开发以及WinForms应用设计等多个方面的问题,可能...
在造价咨询领域,考试题目通常涉及多个方面,包括费用计算、工程量清单计价规则、施工过程中的费用处理以及风险管理。以下是对给定文件部分内容的详细解析: 1. 安全文明施工费与密目安全网费用:安全文明施工费是...
公司内部的驾驶员考试题目主要涵盖了道路交通安全法规、驾驶操作技能、行车安全知识等多个方面,旨在确保员工具备良好的驾驶素质和安全意识。以下是这些知识点的详细解释: 1. 记分周期:道路交通安全违法行为的...
这些文件标题和描述揭示了与东软公司内部历年考试相关的内容,主要涵盖了05年、07年、09年和10年的考试题目及答案。这些考试可能涉及新员工培训、编码技能评估等方面,主要语言是C++,反映了公司在招聘和培养技术...
“公司内部驾驶员考试题目答案.pdf” 根据提供的文件信息,我们可以总结出以下知识点: 1. 道路交通安全违法行为累积记分周期为12个月。 2. 机动车距离隧道50米以内不准停车。 3. 驾驶车辆通过无人看守的铁路道口...
单片机原理及应用期末考试试题汇总1.pdf 单片机原理及应用是计算机科学和电子工程的一个重要分支,涉及到微处理器、存储器、输入/输出接口、定时器等电路的集成。下面是对单片机原理及应用期末考试试题汇总1.pdf的...
这份资料是针对公司内部驾驶员的培训试题,...总的来说,这份驾驶员考试题目旨在测试和提高驾驶员对交通规则、安全驾驶技巧以及应对突发情况的能力,确保公司内部驾驶员能够遵循交通法规,保障自身和他人的行车安全。
中软国际内部项目管理对的考试资料,很适合各个阶段的测试题!对于面试也十分的有帮助!
【知识点详解】 1. **道路交通安全法规**:驾驶员必须了解道路交通安全违法行为的记分周期,通常是12个月。此外,驾驶车辆在特定区域如隧道50米内、无人看守的铁路道口、高速公路等地方有特定的行驶规定,如不得...
以上内容详细解释了电力系统自动化中的关键概念和技术,包括DMS、EMS、状态估计、潮流计算、安全分析和负荷预测等,这些都是电力公司内部面试可能涉及的知识点。掌握这些知识有助于理解电力系统的运作机制和管理策略...
8. 内部资金配置:题目18指出转移价格是国际企业内部资金配置的独特手段。 9. 金融衍生工具:题目23提到了掉期交易,这是管理汇率风险的金融工具之一。 10. 期权价值与风险管理:题目24和26涉及期权的时间价值和企业...
【网络资源】相关的驾驶员考试题目主要涵盖交通安全法规、驾驶技巧和车辆维护等方面的知识。以下是根据题目内容提炼出的相关知识点: 1. **交通违法记分周期**:道路交通安全违法行为的累积记分周期为12个月,驾驶...
以上是PowerBuilder考试题目中涉及的关键知识点,包括PowerBuilder的基本概念、数据窗口的使用、PowerScript语法、对象操作以及数据处理等方面的内容。掌握这些知识点对于理解和使用PowerBuilder开发应用程序至关...