JAVA开发工程师JAVAEE面试题

本文详细介绍了JAVAEE中的Servlet生命周期、Cookie与HttpSession、Ajax和JDBC的相关知识。Servlet生命周期包括init(), service()和destroy()方法。Cookie和HttpSession用于维持会话状态,Ajax实现异步更新页面,JSON是一种轻量级的数据交换格式,Jackson是解析JSON的API。JDBC涉及数据库连接、数据连接池的工作机制以及事务处理等关键概念。" 119749319,9901835,使用Cmd编译运行Java程序及打包成jar,"['Java开发', '命令行工具', '软件工程']
摘要由CSDN通过智能技术生成


JAVAEE


Servlet

一、Servlet生命周期

init():初始化
service():服务
destroy():销毁
当客户端浏览器第一次请求 Servlet 时,容器会实例化这个 Servlet,然后调用一次 init 方法,并在新的线程中执行 service 方法处理请求。service 方法执行完毕后容器不会销毁这个 Servlet 而是做缓存处理,当客户端浏览器再次请求这个 Servlet 时,容器会从缓存中直接找到这个 Servlet 对象,并再一次在新的线程中执行 Service 方法。当容器在销毁 Servlet 之前对调用一次 destroy 方法。

二、Cookie 对象与HttpSession 对象

Cookie 对象与 HttpSession 对象的作用是维护客户端浏览器与服务端的会话状态的两个对象。由于 HTTP 协议是一个无状态的协议,所以服务端并不会记录当前客户端浏览器的访问状态,但是在有些时候我们是需要服务端能够记录客户端浏览器的访问状态的,如获取当前客户端浏览器的访问服务端的次数时就需要会话状态的维持。在 Servlet 中提供了 Cookie 对象与 HttpSession 对象用于维护客户端与服务端的会话状态的维持。二者不同的是 Cookie 是通过客户端浏览器实现会话的维持,而 HttpSession 是通过服务端来实现会话状态的维持。

Jsp

Web

Ajax

一、Ajax是什么

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态应用的网页开发技术,无需重新加载整个网页的情况下,能够更新页面局部数据的技术。
通过在后台与服务器进行少量数据交换,Ajax 可以使页面实现异步更新。这意味着可以在不重新加载整个页面的情况下,对页面的某部分进行更新。

二、XMLHttpRequest 对象

XMLHttpRequest 是浏览器接口对象,该对象的 API 可被 JavaScript、VBScript 以及其它web 浏览器内嵌的脚本语言调用,通过 HTTP 协议在浏览器和 web 服务器之间收发 XML 或其它数据。XMLHttpRequest 可以与服务器实现异步交互,而无需让整个页面刷新,因此成为 Ajax 编程的核心对象。

三、使用步骤

1、创建XMLHttpRequest对象

var xhr = new XMLHttpRequest();

2、给定请求方式以及请求地址

xhr.open("get","http://www.example.com");

3、发送请求

xhr.send();

4、获取服务器端给客户端的响应数据

xhr.onreadystatechange = function(){
//0:open()没有被调用
//1:open()正在被调用
//2:send()正在被调用
//3:服务端正在返回结果
//4:请求结束,并且服务端已经结束发送数据到客户端
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById("span").innerHTML=xhr.responseText;
alert(xhr.responseText);
}
}

四、JSON是什么

JSON(JavaScript Object Notation) 是一种基于字符串的轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON 是 JavaScript 数据类型的子集。

五、JSON特点

在 JSON 未出现之前在 Ajax 中对于数据传递方式,会使用 XML 作为主要数据格式来传输数据。直到 JSON 出现后逐渐放弃使用 XML 作为数据传输格式。JSON 比 XML 更小、更快,更易解析。

六、JSON的语法规则

1、大括号表示 JSON 的字符串对象。{ }
2、属性和值用冒号分割。{“属性”:“value”}
3、属性和属性之间用逗号分割。{“属性”:“value”,“属性”:“value”,…}
4、中括号表示数组。[{“属性”:“value”…},{“属性”:“value”…}]

七、JSON的6种数据类型

String,number,object,array,true/false,null

八、Jackson是什么

Jackson 是一种解析 JSON 格式数据的 API

八、

JDBC

一、什么是JDBC

•JDBC(Java DataBase Connectivity)java 数据库连接
•是 JavaEE 平台下的技术规范
•定义了在 Java 语言中连接数据,执行 SQL 语句的标准
•可以为多种关系数据库提供统一访问

二 、数据连接池的工作机制是什么? 有什么优点?

1、J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
2、客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
3、如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
4、当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
5、当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。
优点:连接少的时候可以复用

三、JDBC连接数据库的步骤

注册驱动
获取连接
创建一个Statement语句对象
执行SQL语句
处理结果集
关闭资源

四、JDBC中的Statement 和PreparedStatement的区别?

与Statement相比,①PreparedStatement接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注射攻击的可能性);②PreparedStatement中的SQL语句是可以带参数的,避免了用字符串连接拼接SQL语句的麻烦和不安全;③当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)。
为了提供对存储过程的调用,JDBC API中还提供了CallableStatement接口。存储过程(Stored Procedure)是数据库中一组为了完成特定功能的SQL语句的集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。虽然调用存储过程会在网络开销、安全性、性能上获得很多好处,但是存在如果底层数据库发生迁移时就会有很多麻烦,因为每种数据库的存储过程在书写上存在不少的差别。

五、说说数据库连接池工作原理和实现方案?

工作原理:JAVA EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
实现方案:返回的Connection是原始Connection的代理,代理Connection的close方法,当调用close方法时,不是真正关连接,而是把它代理的Connection对象放回到连接池中,等待下一次重复利用。

六、JDBC中如何进行事务处理

Connection提供了事务处理的方法,通过调用setAutoCommit(false)可以设置手动提交事务;当事务完成后用commit()显式提交事务;如果在事务处理过程中发生异常则通过rollback()进行事务回滚。除此之外,从JDBC 3.0中还引入了Savepoint(保存点)的概念,允许通过代码设置保存点并让事务回滚到指定的保存点。

七、使用JDBC操作数据库时,经常遇到性能问题,请你说明一下如何提升读取数据的性能,以及更新数据的性能?

要提升读取数据的性能,可以指定通过结果集(ResultSet)对象的setFetchSize()方法指定每次抓取的记录数(典型的空间换时间策略);要提升更新数据的性能可以使用PreparedStatement语句构建批处理,将若干SQL语句置于一个批处理中执行。

八、解释一下Jdo以及它的作用

JDO 是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

九、谈谈JDBC的反射,以及它的作用?

通过反射com.mysql.jdbc.Driver类,实例化该类的时候会执行该类内部的静态代码块,该代码块会在Java实现的DriverManager类中注册自己,DriverManager管理所有已经注册的驱动类,当调用DriverManager.geConnection方法时会遍历这些驱动类,并尝试去连接数据库,只要有一个能连接成功,就返回Connection对象,否则则报异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值