《2022年JAVA技术综合面试题目 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA技术综合面试题目 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1/16 目录1技术综合面试. 错误!未定义书签。2Struts框架 . 2 3Spring 框架 . 4 4AJAX技术 . 5 5Hibernate框架 . 6 6框架综合运用. 6 7J2EE初级题目 . 7 8J2SE初级题目 . 13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 2/16 1 Struts框架1.Struts框架的整体运行流程在 WEB 启动时就会加载并初始化ActionServlet。Actio
2、nServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中.当ActionServlet接收到一个客户请求时:一、检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效。二、如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交表单数据保存到ActionForm对象中。三、 根据配置决定是否需要表单验证,如果需要验证, 就调用 ActionForm的 validate()方法。四、 如果 ActionForm的 validate()方法返回 null 或返回一个不包含ActionMessage的
3、 ActionError对象,就表示表单验证成功。五、 ActionServlet根据 ActionMapping实例包含的映射决定将请求转发给哪个Action 。 如果相应的Action实例不存在, 就先创建这个实例, 然后调用 Action的 execute()方法。六、 Action的 execute()方法返回一个ActionForward对象, ActionServlet再把客户请求转发给ActionForward对象指向的JSP 组件。七、 ActionForward对象指向的JSP 组件生成动态网页,返回给客户。2.ActionServlet在 Struts框架中的总体作用功能是
4、什么ActionServlet是 struts框架的总控制器, 处理客户端请求并决定由那个action处理请求。3.Struts框架的后缀名一般为.do ,后缀名能不能更改,如果能更改的话,如何进行更改后缀名后缀名可以更改。通过修改web.xml 中的 *.do 4.如何在 Struts-config.xml中配置数据源以及获取数据源在 struts中配置 oracle数据源需要四个名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - -
5、- 3/16 包:commons.pools,commons.dbcp,Class12.jar,struts_legacy.jar,把它加到WEB-INF下的 lib目录下就可以了, 然后这段写在struts-config.xml文件的标签下: 5.Struts-config.xml文件 action配置中的 attribute属性和 name属性有什么区别attribute:制定与当前Action 相关联的ActionForm Bean 在作用域里的名称name:指定和当前Acion 关联的 ActionForm Bean 的名字。该名称必须在form-bean 元素中定义过。6.Strut
6、s中的 Action是不是线程安全的?如果不是有什么方式可以保证Action的线程安全?如果是,说明原因不是 . 为了确保 action 的线程安全 , 最好的办法就是不要在action 里定义实例变量7.Action的 Execute 方法有几个参数,这几个参数的具体作用是什么ActionMapping mapping:Action里的配置属性信息ActionForm form:与该 Action相关联的 ActionForm对象HttpServletRequest request:该 Action接收到的请求信息HttpServletResponse response:该 Action返回
7、的响应信息8.Action的 Execute 方法的返回值是什么类型,有几种方式可以返回此类型返回值类型:ActionForward 1).mapping.findForward(“ Forward的名称 ” ); 2).new ActionForward(“ jsp组件的路径 ” );9.ActionFrom中对于错误消息的存取是如何存取的,页面上面是如何显示ActionFrom中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - -
8、- 4/16 存放的出错消息10.普通的 Action对于消息的存取是如何实现的,页面上面是如何显示Action中存放的消息11.普通的 ActionForm和动态的ActionForm有什么区别,在动态的ActionForm中如何设定一个日期类型的属性12.动态 ActionFrom是以什么方式存取表单控件的值的。要使用动态ActionForm取得一个控件的值是如何取得13.普通的 Action与 DispatchAction的区别是什么14.Struts框架中常用的有HTML/Bean/Logic 标签,这些标签的主要功能是什么15.HTML标签中的name属性代表什么功能,为什么可以省略
9、不写16.Struts标签中 name和 property两个属性的作用和区别17.请简述 J2EE 平台体系中标签的体系结构18.请简述自定义标签的步骤19.如何在自定义标签中获取ServletContext,HttpSession,HttpServletRequest这些 JSP页面常见的对象20.Servlet2.4版本中新增加了一个标签为简单标签,要实现简单标签的话,必须实现标签中的哪一个方法,该方法有没有返回值21.Struts框架如何实现国际化的步骤22.如何实现页面中HTML标签的初始值设置23.Struts框架的综合运用开发过程中,一般会使用ActionForm 和 JavaB
10、ean, 这两个 Bean能不能通用 ?如果不能的话请简述原因24.如何操作Oracle 表中 CLOB 和 BLOB 字段2 Spring 框架1.Spring 框架分为哪七大模块,各模块的主要功能作用是什么2.Spring 框架中的三大核心思想是什么3.IOC 的概念以及在Spring 容器中如何进行IOC 的操作。4.Spring 容器是如何管理Bean的生命周期的(如 Bean 的初始化方法,Bean的销毁方法 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共
11、16 页 - - - - - - - - - 5/16 5.DI 的概念以及在Spring 框架注入有几种方式。使用构造注入对象,必须要注意什么问题,当设值注入与构造注入同时存在时,执行的先后流程顺序6.使用 DI 注入时, Property代表什么意思,如果property引用的是其他Bean的话,如何注入,如果引用是字符串的话,如何设置。7.在 Spring框架中获取连接池有几种方式。当JNDI 与 DBCP同时存在时,会不会出现问题,如果不能同时存在的话,请说明原因8.在使用 Spring的 JDBCTemplate 操作数据时, 必须要往模板中注入哪些对象,同时模板要不要手动关闭数据库
12、连接9.JdbcTemplate 的 QueryForList方法得到 List集合,请问 List集合中每一个对象为什么数据类型,在JSP页面使用EL表达式如何取值。10.AOP的概念以及使用AOP机制有什么好处。Java 编程中实现AOP有几种方式11.Spring 框架中的事务处理有几种。请分别阐述两者的区别12.编程式事务的总接口是什么?使用编程式事务需要用到哪几个Spring事务的核心类对象13.Spring 的声明式事务能不能为普通的类产生代理接口,能不能在代码中使用Try/Catch能捕获异常,如果不可以,请说明原因14.使用 TransactionProxyFactoryBea
13、n为 Bean产生事务物理时,需要哪几个属性值的设置3 AJAX技术1.什么是 AJAX技术,为什么要使用AJAX 2.什么是 XMLHttpRequest 对象,以及如何在不同的浏览器创建XMLHttpRequest 对象3.AJAX在客户端时。如何发送文本的GET和 POST 请求,以及如何接收服务端传送回来的文本数据4.AJAX在客户端时如何发送XML数据,服务端如何接收XML数据以及解析。服务端如何发送 XML数据到客户端,客户端如何进行解析。5.在 AJAX中,如何解决文本与XML的发送与接收的编码与解码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
14、 - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 6/16 4 Hibernate框架1.Hibernate框架的工作流程2.Hibernate框架中的核心接口有哪些,这些接口的具体功能是什么3.Hibernate中的 Session 对象表示什么?它与 Web程序中的 Session 是一样的机制吗4.Hibernate.cfg.xml配置文件中,应该包含哪些具体的配置内容5.简述 Hibernate的主键机制,针对Oracle 数据库,有几种主键机制可以适用6.请简述 Hibernate中 cascad
15、e,inverse,constrained几个属性的区别7.Hibernate有几种数据查询方式,这几种数据查询方式的优缺点8.Hibernate中的延迟机制的原理,以及Hibernate中数据有几种延迟加载方式? 9.Hibernate中 Load 和 Get 两种方法查询数据的区别10.Hibernate如何实现对象之间一对一的映射。一对一的映射有几种方式11.Hibernate如何实现对象之间的一对多映射。并且如何对Set 集合中的列表数据进行排序12.Hibernate如何实现对象之间的多对多的映射13.Hibernate框架中,如何实现对象数据之间的内连接操作14.Hibernate
16、框架中,如何实现对象数据这间的左外连接操作15.如何在 Hibernate中实现对数据的批量删除和批量更新5 框架综合运用1.Struts框架中如何实现多配置文件的运用 action org.apache.struts.action.ActionServlet config 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 7/16 /WEB-INF/struts-config_lxw.xml,/WEB-INF/struts-c
17、onfig_lsr.xml,/WEB-INF/struts-config_yck.xml,/WEB-INF/struts-config_wjl.xml 2.Struts框架与 Spring框架的结合方式有几种,请简述每个方式的特点3.Struts框架结合Spring 框架时,Spring 框架可以采用多配置文件,请问结合时,Spring的多配置文件有哪几种方式4.普通的 WEB 工程 ( 如 Servlet)如何调用 Spring中的 Bean对象5.Struts框架所对应的Action类的实例与Spring框架 Action类的实例是如何关联的,以及在 Action中要调用Spring 中的
18、业务接口,应如何注入6.Spring 框架结合Hibernate框架的方式有几种? 7.Spring 框架中使用HibernateTemplate时,需要往 HibernateTemplate注入哪些对象? 8.HibernateTemplate操作 HQL语句时,如果HQL语句是包含中文字符的话,应如何处理中文问题9.Struts,Spring,Hibernate在 J2EE三层体系中运用过程中,是如何分工协作的6 J2EE初级题目1.什么是 J2EE 平台架构, J2EE平台体系下面有哪些技术组件J2EE平台架构 :J2EE 是使用 Java 技术开发企业级应用的一种事实上的工业标准,它是
19、 Java 技术不断适应和促进企业级应用过程中的产物技术组件:HTML,CSS,javascript,servlet,jsp,javabean; Applet,EJB,JDBC,JMS,JMX,JNDI,JSF,JSP,JSTL,JTA,JavaMail,WS等等,2.Servlet的生命周期流程1). 服务器加载Servlet 2). 服务器创建Servlet实例3). 调用 Servlet的 init()方法4). 收到请求名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,
20、共 16 页 - - - - - - - - - 8/16 5). 调用 Servlet的 service()方法6). 将输出结果返回给客户端7).Servlet等待下一个请求, 若再次接收到请求跳到第4) 步,否则到第8)步8).Servlet调用 destroy()方法,进行卸载3.Servlet的 Web.xml 中的配置 servlet名称 对应的类的全名包括包名 , servlet名称 /servlet的访问路径 4.什么是过滤器,过滤器的工作原理以及常用的过滤器使用场合过滤器:是实现了javax.servlet.Filter接口的 java 类使用场合: 1). 设置请求对象的字
21、符集2). 权限控制5.JSP有几大内建对象, 这对内建对象的作用分别是什么有 9 大内建对象:Page:获取或设置当前JSP页面的对象Request: 获取或设置当前用户请求Session: 获取或设置当前用户的会话Application: 获取或设置应用程序的信息Out: 用于程序的输出Response: 获取或设置当前返回给用户的响应Config: 获取或设置JSP页面的配置Execption: 获取或设置JSP页面产生的异常PageContext: 是集大成者,可以获取该应用程序的所有对象名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
22、- - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 9/16 6.JSP有哪些动作元素,这些动作元素的作用分别是什么:包含文件:导向到另一个资源:以键 - 值对的形式,为其他指令提供输入参数:插件指令:创建 bean 实例:与 useBean 协作,目的将请求对象属性设置到bean 对象中:与 useBean 协作,获取bean 对象的属性7.JSP中动态 INCLUDE与静态 INCLUDE的区别动态 include: 语法: 发生时间:请求期间包含内容:页面的输出产生 Servlet个数:两个 ( 主页面和被包含的页面都会
23、成为独立的Servlet) 被包含页面可否设置影响主页面的响应报头:不可以被包含页面是否可以定义主页面使用的字段或方法:不可以被包含页面发生改变时时候需要更新主页面:不需要等同的 Servlet代码: RequestDispatcher的 include方法静态 include: 语法: 发生时间:页面转换期间包含内容:文件的实际内容产生 Servlet个数:一个 ( 被包含的页面首先被插入到主页中, 然后 , 得到的页面被转换成 Servlet) 被包含页面可否设置影响主页面的响应报头:可以被包含页面是否可以定义主页面使用的字段或方法:可以被包含页面发生改变时时候需要更新主页面:需要等同的
24、Servlet代码:无8.JSP页面的组成元素有哪些,这些元素的具体作用注释元素:用来为JSP页面进行注释名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 10/16 指令元素:用来提供整个JSP 网页相关的信息,并且用来设定JSP网页的相关属性脚本元素 (九大内建对象):使开发者能直接将java 代码嵌入JSP页面 HTML标记中动作元素: jsp 页面的一些标记, 通过解释转换成相应的java 代码 , 达到某些功能9.Se
25、rvlet和 JSP有哪些会话跟踪技术,请描述这几种会话跟踪技术的作用域范围四种会话跟踪方式: 1.Session 作用域范围:session 2.cookie: 作用域范围:request 3.隐藏表单域作用域范围:request 4.Url 重写作用域范围: request 10.如何在 JSP页面定义方法, 在定义的方法内部能直接访问JSP的内置对象吗?如果不能,使用何种途径可以访问定义方式: 11.请求和重定向有什么区别?JSP 和 Servlet的请求转发和重定向分别是如何实现的请求转发:JSP: Servlet: RequestDispatcher:forword(HttpServ
26、letRequest,HttpServletResponse); 1). 请求转发发生在服务器端; 一个 web组件 ( 如:servlet)接收到一个请求后,自身不做处理,而是转发后另一个web组件 ( 如:servlet)处理 ; 在服务端完成; 2). 客户端地址栏地址不发生变化; 两个 web 组件间共享request 。 3).请求转发与重定相比: 请求转发相当于只是一个请求; 效率更高重定向:JSP: Servlet:HttpServletResponse: sendRedirect(String url); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
27、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 11/16 1). 相当于在客户端浏览器地址栏中输入新地址,发送新请求 ; 也就是说重定向发生在客户端。2). 地址栏发生变化; 两个 web组件间不共享request 12.JSP页面如何使用动作元素定义一个JavaBean。以及如何对JavaBean 实例中的属性进行设值和取值。/ 定义 userBean / 设值 / 取值用户名 : 密码 : 13.模式 1 和模式 2 的区别是什么 , 请简述两种模式的优点和缺点模式 1 和模式 2 的本质
28、区别在于处理用户请求的位置不同模式 1: 优点:方便、简单缺点:将代码暴露在页面上,不安全且不好维护模式 2: 优点:层次分明,分工明确,好维护缺点:业务逻辑较复杂14.JSP和 Servlet是如何实现MVC架构模式Model:JavaBean View:JSP Controller:Servlet 15.JSTL是什么以及为什么要使用JSTL JSTL(JSP Standard Tag Library,JSP标准标签库 ) 是一个不断完善的开放源代码的JSP标签库为了解决JSP开发的以下四个问题:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
29、- - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - - - 12/16 1).jsp维护难度增加 ; 2). 出错提示不明确,不容易调试; 3). 分工不明确 ;( 即 jsp 开发者是美工, 也是程序员 ); 4). 最终增加程序的开发成本; 16.EL表达式中有哪些隐藏对象pageContext PageContext 实例对应于当前页面的处理pageScope 与页面作用域属性的名称和值相关联的Map类requestScope 与请求作用域属性的名称和值相关联的Map类sessionScope 与会话作用域属性的名称和值相
30、关联的Map类applicationScope 与应用程序作用域属性的名称和值相关联的Map类param按名称存储请求参数的主要值的 Map 类paramValues 将请求参数的所有值作为 String 数组存储的 Map 类Header 按名称存储请求头主要值的 Map 类headerValues 将请求头的所有值作为 String 数组存储的 Map 类cookie按名称存储请求附带的 cookie 的 Map 类initParam 按名称存储 Web 应用程序上下文初始化参数的Map类17.RequestScope.username与 Param.username 的区别是什么? Re
31、questScope.username:从 request作用域中取username Param.username :从参数中取username 18.JSTL和 C:ForEach 标签中 ,var,items,varStatus各自代表的含义是什么? Var: 每次循环的当前对象Items: 要遍厉的对象VarStatus:运行状态的对象19.如何在 Tomcat 中配置虚拟目录和连接池 20.什么是 JNDI,以及如何使用JNDI 来获取 WEB 容器中的连接池JNDI( Java Naming and Directory Interface,Java 命名和目录接口) 是一组在 Jav
32、a应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象Connection conn = null; try Context context = new InitialContext(); DataSource ds= (DataSource)context.lookup(java:comp/env/jdbc/oracle);/通过JNDI名得到数据源 . conn= ds.getConnection();/获取连接对象 . catch (SQLException e) e.printStackTrace(); catch (NamingException
33、 e) e.printStackTrace(); 21.请简述 JDBC的操作步骤1). 加载驱动2). 获取连接3). 创建 SQL执行对象4). 执行 SQL 5). 关闭连接7 J2SE初级题目1.面向对象编程的三大特性是什么,请简要阐述答:继承 封装 多态2.String 和 StringBuffer的区别答: StringBuffer是线程安全的,并且StringBuffer在追加字符串时是直接在内存中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页
34、- - - - - - - - - 14/16 追加的。而 String是非线程安全的,并且String在追加字符串时是重新开辟一个内存空间。3.说出 ArrayList,Vector, LinkedList的存储性能和特性ArrayList和 Vector在内存中是连续存储的,当在开头和中间追加一个元素时,其后面的结点都需要向后移动一位。但查询的时候可以直接根据元素下标找到目标结点。ArrayList和 Vector 的区别是, Vector是线程安全的, 而 ArrayList是非线程安全的,而且当它们满的时候,ArrayList增加的内存空间是自身的1/2 ,vector则是增加自己的一
35、倍。而 LinkedList是链式存储。 当在中间追加一个元素时,可以直接将要追加的结点加如,只需对其相邻的结点做改动。但对于查询的时候,则需要从开头依次遍历,直到找到目标结点。4.Collection 和 Collections的区别Collections是集合框架Collection是所有 List,Set的父接口。5.HashMap和 Hashtable的区别HashMap是非线程安全的,Hashtable是线程安全的。6.final, finally, finalize的区别Final是变量修饰符,表示最终的意思,定义了后就不能被修改和继承。Finally是跟 trycatch块后面,
36、表示不管有没出异常都执行,常用于对资源的释放。Finalize则是垃圾清理的方法名。7.Overload和 Override的区别。 Overloaded 的方法是否可以改变返回值的类型? Overload是重载,是指在一个类中,定义多个方法名相同的方法,但要求有不同的参数类型或参数个数。不可以通过改变返回值来区分两个方法Override是重写,是指继承父类时,对可以从父类继承过来的方法自己重新定义方法体。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - -
37、 - - - - - - - 15/16 8.error和 exception有什么区别 ? Error错误,是指系统错误,是严重的,会导致程序终止的。Exception异常,是指程序在运行过程中,因为各种原因而产生的,程序员可以捕获的并对其进行处理。9.abstract class和 interface有什么区别 ? Abstract class是抽象类,抽象类里可以定义方法,变量。实现类只能继承一个抽象类Interface是接口,接口里只能定义方法申明。实现类而且可以继承多个接口10.List, Set, Map是否继承自Collection接口List,Set继承自 Collection
38、接口,而 Map不是。11.swtich是否能作用在byte 上,是否能作用在long 上,是否能作用在String上? 可以作用于BYTE ,LONG , STRING上12.char 型变量中能不能存贮一个中文汉字?为什么 ? 可以, char 站 16 位即两个字符,而一个汉字也是占两个字符13.多线程有几种实现方法, 都是什么 ?哪一种方式比较优秀?同步有几种实现方法, 都是什么? 两种,一个声明一个 Thread 类的子类,并覆盖 run() 方法。ExtendsThead et = new ExtendsThread(); et.start(); 一个声明一个实现 Runnable
39、 接口的类,并实现 run() 方法。ImplRunnable ir = new ImplRunnable(); Thread thread = new Thread(ir); thread.start(); 第二种方式比较优秀。两种方式实现同步:使用同步方法Punlic synchronized void methodA() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 16/16 使用同步块synchronized(object) / 要同步的语句 ( 用上面语句块包围逻辑代码) 14.java 中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类输入输出。字节字符流。inputStream,outputStream Reader Writer 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -