java面试题

    xiaoxiao2022-07-07  217

    1.Stuts+Hibernate+Spring 开发模式中Hibernate扮演的角色。 Hibermate扮演的数据持久层 它的作用是实现持久层对象和数据库表之间的映射,形成持久化对象和数据库表中数据的一个转换平台。

    2.请解释说明Hibernate配置文件中dialect属性的确切含意。 数据库方言:多种数据库拥有不同的语言语法,通过设置dialect指定所用的数据库,并生成对应语法和语言的sql语句。

    3.Spring框架的7个模型是什么? (1)Spring Core Core封装包是框架最基础的部分,使用的是经典的工厂模式,通过BeanFactory提供依赖注入(DI)实现对JavaBean的管理,也就是控制反转(IOC)。消减代码之间的耦合。

    (2)Spring Context Context封装包是Spring Core封装包的基础上构建的,提供了一种框架式访问对象的方式,有些像JND注册。Context包继承Beanns包的功能,还增加了国际化(|18N)的支持,事件传播,资源装载的方法以及透明创建上下文,比如通过Servlet容器。

    (3)Spring DAO DAO(Data Access Object )提供了JDBC的抽象层,它消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJS(plan old java objects)都适用。

    (4)Spring ORM ORM封装包提供了常用的‘对象-关系’映射APIs的集成层,其中包括JPA、JDO、Hibernate、iBatis。利用ORM封装包,可以混合的使用所以Spring提供的特性进行‘对象-关系’映射,如简单声明性事务管理。

    (5)Spring AOP AOP封装包提供符合AOP Alliance规则的面向切面的编程实现,可以定义方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲减弱了代码的功能耦合,清晰的备分离开,而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

    (6)Spring Web Web包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可以与其他框架结合。

    (7)Spring Web MVC Spring中的MVC封装包提供了Web应用的Model-View-Control实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。

    4.在通常情况下软件系统由表示层,业务层,持久层和数据库组成,Strus属于哪一层?说说struts框架的方法在工作原理或流程。 Strus属于表示层组件,它的作用主要体现在: 1).输出用户界面和接收的输入,实现与用户的交互。 2).调用业务方法,完成业务处理,还有包括处理后的显示工作。

    5.简单描述一下什么是线程,什么情况会用到线程? 是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。 系统接受实现多用户多请求的高并发时,通过多线程来实现。

    6.简单描述一下什么是数据库的存储过程和触发器。 (1)数据库存储过程 数据库存储过程是一种数据库对象,是为了实现某个特定任务,将一组预编译的SQL语句以一个存储单元的形式存储在服务器上,供用户调用。存储过程在第一次执行时进行编译,然后将编译好的代码保存在高速缓存中以便以后调用,这样可以提高代码的执行效率。 (2)触发器 触发器是一种特殊类型的存储过程,不由用户直接调用,而且可以包含复杂的 SQL语句。它们主要用于强制复杂的业务规则或要求。触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。

    7.学生成绩表(stuscore) 姓名:name 课程:subject 分数:score 学号:stuid 张三 数学 89 1 张三 语文 80 1 张三 英文 70 1 李四 数学 90 2 李四 语文 70 2 李四 英文 80 2

    1).计算每一个人的总成绩并按降序排名(要求显示字段:姓名,总成绩) select name,sum(score) as sum_score from stuscore group by name order by sum_score DESC;

    2).计算每一个人的总成绩并排名(要求显示字段:学号,姓名,总成绩) select stuid,name,sum(score) as sum_score from stuscore group by stuid,name order by sum_score DESC;

    3).列出各门课程的平均成绩(要求显示字段:课程,平均成绩) select subject,AVG(score) as svg_score from stuscore group by subject;

    最新回复(0)