2021Java面试题分享

       很多参加长沙Java培训班的学员都很担心毕业面试的问题,其实在知道面试官会问的一些题目的时候,那么面试就肯定不用慌,在日常的学习中多实践再加上一定的口才,那么OFFER不就是手到擒来,下面给大家一份2021的Java面试题分享:

QQ截图20211109172810

1. MVC的各个部分都有那些技术来实现?如何实现?

答案: "Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现)

"View" 是应用的表示面(由JSP页面产生)

"Controller" 是提供应用的处理过程控制(一般是一个Servlet)

目的:把应用逻辑,处理过程和显示逻辑分成不同的组件实现。

这些组件可以进行交互和重用。

2. J2EE是什么?

答案: (1)J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model)

(2)J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。

(3)J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

3. STRUTS的应用

答案:Struts基于MVC(Model-View-Controller)设计模式的应用构架。

Struts主要功能:

一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。

二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。

三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

4. 什么是JNDI

答案:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

5. 什么是JMS

答案:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

6. 什么是JTA

答案:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

7. GET与POST方法的区别

答案:(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。

8. JSP中的常用的内置对象

答案:1.request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。

2.response对象:response对象包含了响应客户请求的有关信息.

3.session对象: session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

4.out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象page对象page对象就是指向当前JSP页面本身,

5.application对象: application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭

9、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别

persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。

10. Hibernate有哪些优势与局限

答案:

优点:(1)对象/关系数据库映射(Basic O/R Mapping)

(2)透明持久化(Persistent)

(3)事务Transaction (org.Hibernate.Transaction)

(4)它没有侵入性,即所谓的轻量级框架。

(5)移植性会很好。

(6)缓存机制。提供一级缓存和二级缓存。

(7)简洁的HQL编程。

缺点:Hibernate在批量数据处理的时候是有弱势。

11. j2ee常用的设计模式?说明工厂模式。

Java中的23种设计模式:

Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式),

Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式),

Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式),

Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),

Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式),

Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式),

Observer(观察者模式), State(状态模式), Strategy(策略模式),

Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

12. 请对以下在J2EE中常用的名词进行解释(或简单描述)

web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

13. J2EE是什么?

J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。

14. 解释下面关于J2EE的名词

JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.

JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.

JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.

JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.

RMI:Remote Method Interface,远程方法调用

15 请简述STRUTS架构

Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能: 一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。 二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

16.在Spring框架中,如何解决Web页面乱码问题?

可以采用Spring框架自带的过滤器CharacterEncodingFilter,配置方式如下:

在web.xml文件中filter的位置加上如下内容:

<filter>

<filter-name>encodingFilter</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter

</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>*</url-pattern>

</filter-mapping>

17.在Struts中,如何实现防止表单的重复提交操作?

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。

18 Struts的入口类?

答:ActionServlet是Struts的入口类,所有struts请求都经由该类转发处理

19 关于hibernate:

1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;2)Hibernate的二级缓存是什么; 3)Hibernate是如何处理事务的;

答:1)一对多的标签为:<one-to-many> ;多对多的标签为:<many-to-many>;

2)sessionFactory的缓存为hibernate的二级缓存;

3)Hibernate的事务实际上是底层的JDBC Transaction的封装或者是JTA Transaction的封装;默认情况下使用JDBCTransaction。

20 写出你熟悉的开源框架以及各自的作用。

答:框架:hibernate,spring,struts.

Hibernate主要用于数据持久化;

Spring 的控制反转能起到解耦合的作用;

Struts 主要用于流程控制;

服务器类:Apache Tomcat Jboss等

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值