阿里巴巴 Java 方向面试题汇总(含答案),为什么数据库会丢失数据
需要更多大厂面试资料的话也可以[点击直接进入,免费获取!](
)暗号:CSDN
[](
)四、Tomcat,Apache,JBoss 的区别?
1、Apache 是 HTTP 服务器,Tomcat 是 Web 服务器,JBoss 是应用服务器。
2、Apache 解析静态的 Html 文件;Tomcat 可解析 jsp 动态页面、也可充当
容器。
面小易说:对于服务器而言,在面试中可能并不会过多涉及,相对而言,面小易认为像是 Liunx、Tomcat 这些背后的原理可能更受面试官的青睐。
[](
)五、GET,POST 请求之间的区别?
基础知识:HTTP 的请求格式如下。
主要包含三个信息:1、请求的类型(GET 或 POST),2、要访问的资源(如 resimga.jif),3、HTTP 版本(http/1.1)
区别:
1、Get 是从服务器端获取数据,Post 则是向服务器端发送数据。
2、在客户端,Get 方式通过 URL 提交数据,在 URL 地址栏可以看到请求消息,该消息被编码过;Post 数据则是放在 Html header 内提交。
3、对于 Get 方式,服务器端用 Request.QueryString 获取变量的值;对用 Post 方式,服务器端用 Request.Form 获取提交的数据值。
4、Get 方式提交的数据最多 1024 字节,而 Post 则没有限制。
5、Get 方式提交的参数及参数值会在地址栏显示,不安全,而 Post 不会,比较安全。
[](
)六、Session, Cookie 的区别是什么?
1、Session 由应用服务器维护的一个服务器端的存储空间;Cookie 是客户端的存储空间,由浏览器维护。
2、用户可以通过浏览器设置决定是否保存 Cookie,而不能决定是否保存 Session,因为 Session 是由服务器端维护的。
3、Session 中保存的是对象,Cookie 中保存的是字符串。
4、Session 和 Cookie 不能跨窗口使用,每打开一个浏览器系统会赋予一个 SessionID,此时的 SessionID 不同,若要完成跨浏览器访问数据,可以使用 Application。
5、Session、Cookie 都有失效时间,过期后会自动删除,减少系统开销。
[](
)七、HTTP 报文包含内容
主要包含四部分:
1、request line
2、header line
3、blank line
4、request body
面小易说:上面的三个问题是网络编程的基础知识问题,作为 Java 工程师也需要掌握 HTTP 的知识,而如今 HTTPS 同样也成为了标准,也需要大家进一步了解。此外,相对于大家在课本或者课堂中所学习的 HTTP 1.0/1.1 这些协议而言,很多公司已经迈入了 HTTP 2.0 时代,因此两者之间的差别也需要我们进一步了解。
[](
)八、sendRedirect, foward 区别
1、foward 是服务器端控制页面转向,在客户端的浏览器地址中不会显示转向后的地址;sendRedirect 则是完全的跳转,浏览器中会显示跳转的地址并重新发送请求链接。原理:forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后再将这些内容返回给浏览器,浏览器根本不知道服务器发送的这些内容是从哪来的,所以地址栏还是原来的地址。
2、redirect 是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求的那个地址,浏览器会用刚才的所有参数重新发送新的请求。
面小易说:以上的三个问题在之前网络相关的知识上更进一步,上升到了 Java 网络编程的相关知识,这部分意在考察面试者对于 Java 网络编程相关知识的掌握程度。
[](
)九、谈谈 Hibernate 与 iBatis 的区别,哪个性能会更高一些
1、Hibernate 偏向于对象的操作达到数据库相关操作的目的;而 iBatis 更偏向于 SQL 语句的优化。
2、Hibernate 的使用的查询语句是自己的 HQL,而 iBatis 则是标准的 SQL 语句。
3、Hibernate 相对复杂,不易学习;iBatis 类似 SQL 语句,简单易学。
性能方面:
1、如果系统数据处理量巨大,性能要求极为苛刻时,往往需要人工编写高性能的 SQL 语句或存错过程,此时 iBatis 具有更好的可控性,因此性能优于 Hibernate。
2、同样的需求下,由于 Hibernate 可以自动生成 HQL 语句,而 iBatis 需要手动写 SQL 语句,此时采用 Hibernate 的效率高于 iBatis。
[](
)十、关于 Java 内存模型,
评论