面试 _java_EE

本贴最后更新于 2103 天前,其中的信息可能已经时移俗易

java_web

http 的长连接和短连接

答案

短连接:无状态
长连接:1.1 多次请求用一个连接
管道化连接:在长连接基础上,一次发送多个连接
参考文章

http 常见的状态码有哪些?

答案

成功:200
重定向:302
拒绝请求:403
资源不存在:404
服务器错误:500

tip:
301 redirect: 301 代表永久性转移(Permanently Moved)。
302 redirect: 302 代表暂时性转移(Temporarily Moved )。

GET 和 POST 的区别

答案

请求的数据:
位置:get 在 url 后面;post 在请求体里面。
大小:get1024,post 没有限制。
安全:post 相对安全。

http 中重定向和请求转发的区别?

答案

本质:
重定向是客户端行为;
转发是服务端行为。

重定向:
重新访问一个新的 url,url 地址会变;
请求转发:
一次请求,地址栏不变、

session 共享怎么做的

答案

存储到 redis 中

答案

使用 url 和 header

什么是 jsp,什么是 Servlet?jsp 和 Servlet 有什么区别

答案

Servlet 是服务端的一个组件,
jsp 本质上就是一个 servlet,当用户访问 jsp 文件时,由 tomcat 的 jsp 引擎处理器会将 jsp 转换为 servlet 文件,然后转换为.class 文件,再执行 servlet 实例完成 html 页面拼接。

jsp 有哪些域对象和内置对象及他们的作用?

答案

四大域对象:
pageContext 当前页面
request 一次请求,可以通过转发跳转多个 servlet;
session 浏览器从打开到关闭过程中
application 服务器打开到关闭


九大内置对象:
Request :获取请求的数据
Response :
Session
out
pageContext:提供了对 JSP 页面所有的对象及命名空间的访问!!!
page
Exception
application
Config

为什么是 xml,优缺点,解析器

答案

什么是 xml?
可扩展标记语言。


优点:
格式统一,交互数据比较方便。
缺点:
格式复杂,传输占流量、解析也比较占用资源。


解析:
dom 和 sax、dom4j:
dom 一次加载整个文档,并以 dom 树形式在内存存储。
sax 采用事件模型。
DOM4J 性能最好

数据库

数据库如何优化

答案

引擎优化:
MYISAM:表锁,(存储了表的行数)不支持事务和外键,(我读的时候你可以读不能写,我写的时候你不可以读也不可以写)
INNODB:支持事务。读的时候不加锁,写的时候锁行。

索引优化
合理使用索引,

查询使用索引,避免使用某些操作符:
in
not in
is null
is not null

问题排查
访问量、数据量
基础配置
监视 sql 执行时间
分库、分表

事务的四大特征是什么

答案

原子性:全部成功或者失败;
一致性:执行前后,数据的完整性没有被破坏(逻辑上数量不变,一个减少一个增加);
隔离性:不同事务不相互影响,同一时间只有一个事务在操作数据库。
持久性:事务执行完,不会被回滚。

原一隔持(原来你是一个吃货)

事务的四种隔离级别分别是什么

答案

读未提交
读已提交:另外事务只要提交就可以读。
可重复读:一个事务多次读取,结果是一个值。
串读

spring

谈谈你对 spring 的理解

答案

看图说话

阐述 SpringMVC 流程

答案

1、浏览器访问前端控制器
2、前端控制器把请求转发给处理器映射器
3、前端控制器把执行链转发给处理器适配器
4、处理器适配器调用具体的处理器执行
5、前端处理器把 modelAndView 转发给视图解析器,视图解析器根据 viewName 返回具体的 jsp 文件
6、前端控制器再把 model 转发给具体的 jsp 文件
7、前端控制器结果返回给用户。

谈谈你对 IOC 和 DI 的理解

答案

IOC:控制反转,把对象的创建交给 Spring 框架。
DI:spring 创建对象的过程中,动态地将对象属性注入到对象中。

Spring 如何处理线程并发问题

答案

threadLocal

spring Bean 生命周期、注入方法、实例化方式

答案

生命周期

注入方法:属性和构造函数

实例化参考

redis

redis 是什么?哪些功能?使用场景?

答案

详细信息

缓存穿透?缓存雪崩?缓存击穿?

答案

穿透:查不到时也缓存即可。
雪崩:缓存失效时间随即即可。
击穿:单个 key 失效瞬间被击穿,使用互斥锁(redis.setnx,只有第一个能成功)
参考,或者把过期时间存到 value 里面,异步更新

redis 淘汰策略和过期策略

答案

详细信息

常见的性能问题有哪些?该如何解决?

答案

详细信息

  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...