首页 > 阿里一面凉经,面试官人很好,是我太菜
头像
May_Not_Be_A_Loser
编辑于 2021-04-27 10:20
+ 关注

阿里一面凉经,面试官人很好,是我太菜

阿里一面凉经,虽然还没结果,估计没了

面试官人真的很好

你对于servlet的理解?

没答出来,光顾着准备Spring了,servlet真是一年多没碰过了。

  • Java Servlet是一个响应HTTP请求的Java对象,它运行在一个Web容器内。
  • web容器,可以理解为web程序中的静态资源和业务逻辑和数据读写的部分,也就是对应的MVC,我们常用的Tomcat其实应该算作Java web容器+web服务器,他即完成了web服务器的实现HTTP协议,又作为web容器负责编译、运行、部署我们的Servlet、JSP。
  • servlet技术的实现核心是javax.servlet.Servlet接口,所有的servlet类必须直接或间接实现servlet接口。我们使用的servlet一般是继承自HttpServlet接口,这个接口封装了doPost()和doGet()方法。
  • servlet的生命周期包括加载、实例化、处理客户端请求、销毁。具体的实现是javax.servlet.Servlet接口的init、service、destroy方法。

你对于Java的request、response的了解?

没答出来,理由同上

  • request和response分别实现了java.servlet.http包下的HttpServletRequset和HttpServletResponse接口,他们都是对http请求和相应的一个封装。
  • Servlet 容器附加在一个 web 服务上,这个 web 服务会在某个端口号上监听 HTTP 请求,在开发环境中这个端口通常为 8080,生产环境中通常为 80。当客户端(web 浏览器)发送了一个 HTTP 请求,Servlet 容器会创建新的 HttpServletRequest 和 HttpServletResponse 对象,传递给已创建好并且请求的 URL 匹配 url-pattern 的 Filter 和 Servlet 实例中的方法,所有工作都在同一个线程中处理。
  • request 对象可以访问所有该 HTTP 请求中的信息,例如 request header 和 request body。response 对象为你提供需要的控制和发送 HTTP 响应方法,例如设置 header 和 body(通常会带有 JSP 文件中的 HTML 内容)。提交并完成HTTP 响应后,将回收 request 和 response 对象。

MyBatis的理解?

其实原问题我也不会,然后面试官换了一个委婉一点的方式,问如果叫我设计一个MyBatis应该有哪些模块。
这儿不大好写,我赶紧滚回去看MyBatis。
MyBatis基本原理

Java动态代理和拦截器、装饰者的区别?

一看书签我其实看过这个问题,奈何没想起来,废物!
Java标准库提供了一种动态代理(Dynamic Proxy)的机制:可以在运行期动态创建某个interface的实例。我们不是直接new出一个对象来了,我们是通过JDK提供的一个Proxy.newProxyInstance()方法创建了一个接口的对象,这种没有实现类但是在运行期动态创建了一个接口对象的方式,我们称为动态代码。JDK提供的动态创建接口对象的方式,就叫动态代理。
面试官说动态代理最大的区别就是动态代理是直接作用在字节码层面的,直接修改了需要代理的类的字节码。如果使用简单的适配器模式进行包装的话,需要实现大量的适配器,而动态代理只需要一个代理类。

Java基础,没什么好讲的

Spring IOC和AOP,没什么好讲的

Spring boot

其实是我简历上的乌龙,我刚开始写简历的时候还以为SSM是Spring boot+Spring MVC+MyBatis,我真傻,真的。

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".这是官网的解释,实际开发中,spring boot主要有以下四个特性:

  1. SpringBoot Starter:只要依赖 spring-boot-starter-web 启动器包,它包含所有 web 开发所有的依赖,就能拥有 Spring Web 的能力,极大简少了 maven 对依赖的配置。
  2. 自动配置:利用从Spring 4开始支持的条件化支撑特性,自动化推测和配置bean;面试官应该是想在这里拓展讲讲的,没讲出来,害。
  3. 命令行接口:SpringBoot的CLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;没用过。
  4. Actuator:提供Spring框架的管理功能,没用过。

python和Java的区别

这是开放的思考题,当时脑子完全是迷糊了,啥也没说出来。

前后端分离的session怎么处理

如果是为了用户鉴权问题的化,可以使用token机制,当用户登录之后服务端就会根据用户的信息生成一个token放在response里面返回给前端,前端之后每次发送请求就需要带上这个token,而后端根据这个token来识别请求者的身份,判断token是否过期。

更多模拟面试

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐