阿里内推电话面试总结

1.说一说ssh2框架整合的工作流程以及它们各自的功能

struts2将jsp中的控制分离出来,当它要执行控制逻辑的具体处理时,就直接使用Spring中的Action组件;Action组件在处理中若要访问数据库,则通过DAO组件提供的接口;而Hibernate才是直接与数据库打交道。
所有的Action模块,DAO类以及Hibernate全部都由Spring来统一管理,整个系统是以Spring为核心,Spring使得管理对象更加方便,极大的降低了组件之间的耦合度,实现了软件各层之间的解耦。

2.Hibernate的核心模块

Hibernate是一个持久层框架,封装了JDBC,基于ORM。它有五个核心接口:
Configuration: 负责管理Hibernate配置信息;
SessionFactory: 负责创建session实例;
Session: 是Hibernate持久化操作的基础,提供了众多的持久化方法;
Transaction: 是Hibernate中进行事务操作的接口,是对实际事务实现的一个抽象,这些实现包括JDBC事务,JTA中的UserTransaction,甚至可以使CORBA事务。
Query: 查询接口,用于向数据库中查询对象,包装了HQL查询语言,采用了新的面向对象的查询方式。

3.Spring的IOC和AOP

IOC:

①IOC就是控制反转
②控制反转就是由第三方实例化对象
③IOC的好处:可以降低耦合度

AOP思想

①AOP就是面向切面编程
②AOP的思想就是把一个对象按照业务分为主要业务和次要业务,然后再动态的组合
③AOP的好处:降低耦合度,代码重用,分工合作

4.什么是运行时异常?

RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。

5.抽象类和接口的区别?

1.抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4.一个类只能继承一个抽象类,而一个类却可以实现多个接口。

6.你知道几种设计模式?单例模式是什么?Spring中怎么实现单例模式?

设计模式总共23种,我看了那本大话设计模式。但几种常用的有单例模式,简单工厂模式,工厂方法模式,缺省适配器模式。但面试官就问单例模式是什么?
单例模式:一个类有且仅有一个实例,并且自行实例化向整个系统提供。 (我有一篇博文详细的写了)
Spring中实现单例?当时候我还真是蒙了,单例模式不是通过它的三种形式去实现它,为什么还要单独在Spring中去实现呢?当时这个问题就没有回答出来。后来想了一下,不知道总结的对不。

  • 总结

bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。而BeanFactory 支持两个对象模型,其中一个就是单态 模型。
□ 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。

你可能感兴趣的:(七八总结)