【面经】科大讯飞Java后端开发一面

一 键入网址到显示页面的过程

        DNS 解析:浏览器首先检查缓存(浏览器缓存、系统缓存、路由器缓存)中是否有目标网址的 IP 地址。如果没有找到,浏览器通过域名系统(DNS)服务器将 URL 转换为对应的 IP 地址。

        TCP 三次握手:在获得目标服务器的 IP 地址后,浏览器与目标服务器建立 TCP 连接,这通过三次握手来完成,确保通信的双方可以成功发送和接收数据。

        发送 HTTP/HTTPS 请求:连接建立后,浏览器向服务器发送一个 HTTP 或 HTTPS 请求,通常包括请求的类型(如 GET、POST)、请求头(包括浏览器信息、Cookies等),以及请求的路径(如 /index.html)。

        服务器处理请求:服务器接收到请求后,处理该请求,可能会查询数据库、读取文件或进行后台计算,并将生成的响应内容打包为 HTTP 响应,发送给浏览器。

        浏览器接收响应并渲染页面:浏览器接收到服务器的响应后,会解析 HTML 文件,同时加载页面中引用的资源(如 CSS、JavaScript、图片等)。浏览器根据解析结果构建 DOM 树、CSSOM 树,结合这些树来生成渲染树并进行页面布局、绘制,将页面显示给用户。

        TCP 四次挥手:当通信结束后,浏览器和服务器通过 TCP 的四次挥手来关闭连接,释放资源。

二 HTTP和HTTPS的区别

数据加密

  • HTTP:数据传输是明文的,没有加密,容易被拦截。
  • HTTPS:数据通过 SSL/TLS 协议加密传输,确保数据的机密性。

安全性

  • HTTP:不安全,容易受到中间人攻击、数据泄露等问题。
  • HTTPS:安全性高,除了加密数据,还可以验证服务器的身份,防止中间人攻击。

端口号

  • HTTP 使用端口 80
  • HTTPS 使用端口 443

性能

  • HTTP:由于没有加密过程,通信速度稍快。
  • HTTPS:由于需要进行加密解密操作,性能略低于 HTTP,但现代优化(如硬件加速和 TLS 1.3)已显著提高 HTTPS 的速度。

三 对称加密和非对称加密,追问https采用的是哪种

对称加密:使用同一把密钥进行加密和解密,密钥的安全性至关重要。

        优点:加密和解密速度快,计算开销小。

        缺点:需要安全地传输密钥,否则可能被窃取。

        常见算法:AES、DES、3DES。

非对称加密:使用一对密钥(公钥和私钥),公钥用于加密,私钥用于解密。

        优点:不需要安全传输密钥,公钥可以公开。

        缺点:加解密速度较慢,计算开销大。

        常见算法:RSA、ECC。

        HTTPS 使用的是 对称加密 和 非对称加密的结合。非对称加密用于在通信开始时安全地传输对称加密的密钥,后续的实际数据传输使用对称加密来提高效率。

四 段式存储的结构,每个段都存什么

        段式存储(Segmented Storage)是一种内存管理方式,它将程序的逻辑内存划分为若干独立的段(Segment)。每个段包含特定类型的信息:

        代码段(Code Segment):存储程序的可执行代码,也称为文本段。

        数据段(Data Segment):存储已初始化的全局变量和静态变量。

        堆段(Heap Segment):用于动态分配内存,主要由 malloc、new 等函数分配。

        栈段(Stack Segment):用于存储函数调用时的局部变量、参数和返回地址,采用后进先出的存储方式。

五 虚拟内存的目的

        扩展物理内存:虚拟内存允许程序使用的内存地址空间大于实际的物理内存,将不常用的数据放入硬盘中的交换空间,只有活跃的数据存放在物理内存中。

        内存隔离:每个进程都有独立的虚拟地址空间,保护进程之间的内存不会互相干扰,提升系统稳定性和安全性。

        提高内存利用率:通过内存分页或分段机制,将内存分配给实际需要使用的部分,避免浪费。

六 树的应用

        文件系统:操作系统中的文件目录结构就是一个典型的树形结构,父节点是目录,叶子节点是文件。

        数据库索引:例如 B-tree 和 B+ 树广泛用于数据库索引中,用于快速查找数据。

        编译器中的语法树:编译器将代码解析为抽象语法树(AST),用于分析代码结构和执行编译。

        网络协议路由:路由算法中使用树结构来表示网络拓扑,选择最优路径。

        HTML/DOM 树:网页的结构由 HTML 构成,浏览器解析后形成 DOM 树,供 JavaScript 操作。

        决策树:机器学习中的一种模型,常用于分类和回归问题。

        二叉搜索树(BST):用于高效的插入、删除和查找操作,适用于动态数据集。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值