Java面试题小结

Java面试题小结:

1. 对面向对象的理解:

OOP是面向对象编程,特征分别是封装、继承、多态、抽象。
封装:封装是指将对象信息状态通过访问权限修饰符隐藏在对象内部,不允许外部程序直接访问,对外提供的get或set方法访问。(作用:简化开发,提升开发效率)
继承:子类继承了父类所有的成员方法和属性,并且可以拥有自己特性。继承解决了代码的重用问题。
多态:多态存在的三个条件 1.继承2.重写3.父类引用指向子类对象
多态的实现方式1.接口实现,继承父类方法重写,同一个类中进行重载

2. 重载与重写的:

他们都是实现多态的方式。

  • 重载:方法名相同,参数不同(个数/类型)
    在调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性,存在于父类和子类、同类中。
  • 重写:
  1. 参数列表必须完全与被重写的方法相同
  2. 返回的类型必须一直与被重写的方法的返回类型相同
  3. 访问修饰符的限制一定要大于被重写方法的访问修饰符
  4. 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
  5. 存在于父类和子类之间,方法被定义为final不能被重写。

3. 事务的特性:

概念:事务是指一组操作,要么都执行成功,要么都执行失败。

  1. 原子性:一组操作,要么都执行成功,要么都执行失败。
  2. 隔离性:在所有操作未完成之前,其他回话是不能看到中间过程的。
  3. 一致性:事物发生和发生后的总金额依然匹配。
  4. 持久性:事务产生的影响是不能撤销的。

事务处理的核心意义:
将一系列操作放在一个事务下进行管理,正常情况全部执行,如果有异常出现,则回滚事务。

4. 简述TCP UDP IP:

在这里插入图片描述
在这里插入图片描述

  1. I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据 报格式传输 ;IP数据报传送 服务 具有不可靠性、无连接性。
  2. UDP是无连接的、面向报文的一对一、一对多、多对一、多对多的交互通信的不可靠传输协议。
  3. TCP是一种面向连接的、可靠的字节流传输协议。

5. 对三次握手四次挥手的理解:

在这里插入图片描述
三次握手的原因

第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。
客户端发送的连接请求如果在网络中滞留,那么就会隔很长一段时间才能收到服务器端发回的连接确认。客户端等待一个超时重传时间之后,就会重新请求连接。但是这个滞留的连接请求最后还是会到达服务器,如果不进行三次握手,那么服务器就会打开两个连接。如果有第三次握手,客户端会忽略服务器之后发送的对滞留连接请求的连接确认,不进行第三次握手,因此就不会再次打开连接。
在这里插入图片描述
四次挥手的原因
客户端发送了 FIN 连接释放报文之后,服务器收到了这个报文,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会发送 FIN 连接释放报文。

6. IOC/DI 与 Aop

  1. IOC控制反转:创建实例对象的控制权从代码转换到Spring容器。实际就是在xml中配置。配置对象
    实例化对象时,进行强转为自定义类型。默认返回类型是Object强类型。
  2. DI: 把代码向对象属性或实例对象注入属性值或域属性的控制权限转给Spring容器进行控制。
    DI实现为对象注入属性值  在配置文件中的bean节点进行注入
    实现注入的方式很多有构造注入 set注入 p:注入 等等 。 在开发中使用频率较多的是set注入。推荐使用set注入
  3. AOP:
    AOP,面向切面编程,AOP的作用是对方法进行增强,不用修改源代码就可以扩展功能,底层使用动态代理实现。

7. SpringMVC的流程:

在这里插入图片描述

  1. 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。
  2. DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)
  3. DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller
  4. HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet
  5. DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图。
  6. DispatcherServlet将模型数据填充到视图中
  7. DispatcherServlet将结果响应给用户

8. 对Mybatis理解

在这里插入图片描述

参考及引用源自:

  1. TCP、UDP、IP详解:https://blog.csdn.net/zpoison/article/details/86528327
  2. springmvc工作流程:https://www.cnblogs.com/hamawep789/p/10840774.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huathy-雨落江南,浮生若梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值