Java面试全收集

java基础

Java中的集合,List和HashMap

Java多线程

线程池
线程的五个状态,其中阻塞状态分为blocked和waiting,有什么区别

Java虚拟机

JVM内存,无限递归时会发生什么

Redis

Redis的持久化机制

MySQL

MySQL的事务机制

事务是一组逻辑操作,要么全都执行,要么全都不执行.

事务特性ACID

  1. Atomi

计算机网络


TCP建立连接三次握手

  1. 主机A发送SYN=1 seq=x的数据包到服务器B, 主机B由syn=1知道, A要求建立联机
  2. 服务器B收到请求后,要求确认联机, 向A发送SYN=1 ACK=1 seq=y ack number = x + 1
  3. 主机A收到报文段,检查ack number是否正确 是否x+1 已经ACK是否为1;正确的话主机发送ACK = 1,seq=x+1,ack number = y + 1.
    原因:防止已经失效的请求连接突然又传送到了B因而产生错误,两次握手服务器可能在客户端没有同意的情况下建立连接,浪费资源.

输入网址到浏览器,中间发生什么

  1. url解析,判断是否合法的url
  2. DNS解析:确定域名对应的IP地址, UDP查询
    • 检查缓存: 浏览器缓存,操作系统缓存hosts文件,路由器缓存,ISP DNS缓存,根域名服务器
    • 递归查询IP地址: 根服务器, com服务器, cn服务器, google.com DNS服务器
    • DNS 负载均衡 根据服务器的负载量,该机器距离的用户的地理位置返回一个合适的IP给用户
  3. TCP连接
    • TCP对HTTP请求进行封装,加入端口号,加密方式等信息
    • 三次握手
  4. 客户端发送HTTP请求
    • 浏览器会构建HTTP报文并通过TCP协议发送到服务器的指定端口80/8080 HTTPS443
    • 报文主要由三部分组成请求行, 请求首部, 请求实体
    • 请求经过负载均衡和重定向
  5. 服务器处理请求并返回响应HTTP报文
    • 从固定端口接受到TCP报文,根据HTTP协议解析
    • 封装响应报文: 响应行(状态码), 响应首部(参数), 响应实体(资源)
  6. 浏览器解析渲染画面
    • 解析HTML文件, CSS文件
  7. 连接结束
    • TCP断开连接:四次挥手
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务