基础面试题篇2

前言

前两天又比较忙,放假前的赶工。今天已经到家啦,咱们继续分享一下常用的基础知识。

基础面试题篇2

  1. BIO AIO NIO有何区别?

BIO:同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

  1. 集合迭代器Iterator

Iterator 接口提供遍历任何 Collection 的接口。我们可以从一个 Collection 中使用迭代器方法来获取迭代器实例。迭代器取代了 Java 集合框架中的 Enumeration,迭代器允许调用者在迭代过程中移除元素。
千万别在循环中直接移除元素,要使用迭代器。其本身也是一种设计模式。
注意在迭代过程中不要修改集合元素,否则会报并发修改异常。

  1. 说一下atomic的原理

atomic 主要利用 CAS (Compare And Wwap) 和 volatile 以及 native 方法来保证原子操作,从而避免 synchronized 的高开销,执行效率大为提升。

  1. XSS与CSRF

XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户 cookie、破坏页面结构、重定向到其他网站等。
预防 XSS 的核心是必须对输入的数据做过滤处理。一般使用Filter实现。
CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。
防御手段:验证请求来源地址;关键操作添加验证码;在请求地址添加 token 并验证。

  1. 介绍一下tcp和udp

tcp 和 udp 是 OSI 模型中的传输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。
两者的区别大致如下:
tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接;
tcp 提供可靠的服务(数据传输),udp 无法保证;
tcp 面向字节流,udp 面向报文;
tcp 数据传输慢,udp 数据传输快;

  1. tcp 为什么要三次握手?

如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。

  1. 说一下 tcp 粘包是怎么产生的?

tcp 粘包可能发生在发送端或者接收端,分别来看两端各种产生粘包的原因:
发送端粘包:发送端需要等缓冲区满才发送出去,造成粘包;
接收方粘包:接收方不及时接收缓冲区的包,造成多个包接收。

  1. 介绍一下spring mvc运行流程

spring mvc 先将请求发送给DispatcherServlet。
DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller。
DispatcherServlet 再把请求提交到对应的 Controller。
Controller 进行业务逻辑处理后,会返回一个ModelAndView。
Dispathcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView 对象指定的视图对象。
视图对象负责渲染返回给客户端。

相关推荐

  1. 基础面试2

    2024-02-06 01:48:01       28 阅读
  2. K8s面试——基础2

    2024-02-06 01:48:01       28 阅读
  3. JVM基础面试第一

    2024-02-06 01:48:01       15 阅读
  4. K8s面试——基础1

    2024-02-06 01:48:01       25 阅读
  5. 后端面试--计算机基础

    2024-02-06 01:48:01       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 01:48:01       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 01:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 01:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 01:48:01       18 阅读

热门阅读

  1. 设计模式概述

    2024-02-06 01:48:01       30 阅读
  2. window 挂载linux 网盘

    2024-02-06 01:48:01       35 阅读
  3. 医学CT成像的迭代算法 SART和OS-SART算法

    2024-02-06 01:48:01       33 阅读
  4. 循环神经网络(RNN)简介与应用

    2024-02-06 01:48:01       29 阅读
  5. 13、gitlab

    2024-02-06 01:48:01       34 阅读
  6. 数据结构之快速排序

    2024-02-06 01:48:01       32 阅读
  7. 网络安全简介

    2024-02-06 01:48:01       28 阅读
  8. 《微信小程序开发从入门到实战》学习九十九

    2024-02-06 01:48:01       34 阅读
  9. C# Avalonia 11.0.6 绘图

    2024-02-06 01:48:01       29 阅读
  10. SQL的函数类型

    2024-02-06 01:48:01       35 阅读
  11. 【工具】使用asciidoctor-pdf将adoc文件转换成pdf

    2024-02-06 01:48:01       31 阅读
  12. linux使用docker安装rancher

    2024-02-06 01:48:01       27 阅读