当前位置: 首页 > article >正文

java高频面试题-高级篇

1,TCP可靠传输除了三次握手,还有其他方式保证可靠性吗?

  1. 序列号和确认应答:TCP通过序列号和确认应答机制来确保数据包的有序传输和可靠接收。
  2. 数据校验和:TCP在每个数据包中都包含一个校验和字段,用于检测数据在传输过程中是否发生损坏或错误。
  3. 超时重传:如果发送方在一定时间内未收到确认应答,会触发超时重传机制,重新发送未确认的数据包。
  4. 流量控制:TCP通过滑动窗口机制来进行流量控制,避免发送方发送过多数据导致接收方无法处理。
  5. 拥塞控制:TCP通过拥塞窗口和拥塞避免算法来控制网络拥塞,避免数据丢失和网络性能下降。

2,说说你对JVM了解多少?

JVM是Java程序的运行环境,它负责将Java源代码编译成字节码并在不同平台上运行。JVM包括三个主要部分:类加载器(ClassLoader)、运行时数据区(Runtime Data Area)和执行引擎(Execution Engine)。类加载器负责加载类文件,运行时数据区包括方法区、堆、栈等内存区域,执行引擎负责执行字节码指令。JVM还包括垃圾回收器(Garbage Collector)用于自动管理内存,以及即时编译器(Just-In-Time Compiler)用于提高代码执行效率。我也了解一些JVM调优的方法,例如调整堆大小、选择合适的垃圾回收算法等。

3,常用的垃圾回收算法有哪些?

  1. 标记-清除算法(Mark-Sweep Algorithm):首先标记出所有活动对象,然后清除未标记的对象,释放其内存空间。
  2. 复制算法(Copying Algorithm):将内存空间划分为两个区域,一部分用于存放活动对象,另一部分用于存放非活动对象,将活动对象复制到另一部分区域,然后清空原区域。
  3. 标记-整理算法(Mark-Compact Algorithm):标记出所有活动对象后,将它们向一端移动,然后清理掉另一端的非活动对象。
  4. 分代算法(Generational Algorithm):将内存空间划分为新生代和老年代,新生代对象生命周期短,采用复制算法;老年代对象生命周期长,采用标记-整理算法。
  5. 引用计数算法(Reference Counting Algorithm):通过引用计数来判断对象是否可回收,当引用计数为0时回收对象。

4,说一下数据库索引的底层数据结构有哪些?

  1. 二叉搜索树(Binary Search Tree):包括二叉搜索树(BST)、平衡二叉树(AVL树)等,通过比较节点值大小来构建树结构,查询效率取决于树的平衡性。
  2. B树(B-Tree):是一种多路平衡查找树,通常用于磁盘存储,每个节点可以包含多个子节点,减少磁盘I/O次数,提高检索效率。
  3. B+树(B+ Tree):是B树的变种,内部节点只存储索引,叶子节点存储数据和指向下一个叶子节点的指针,适合范围查询和顺序访问。
  4. 哈希表(Hash Table):通过哈希函数将键映射到存储桶,查询效率高,适合等值查询,但不支持范围查询。
  5. 红黑树(Red-Black Tree):是一种自平衡二叉搜索树,用于实现数据库中的索引结构,保持树的高度平衡,提高检索效率。


http://www.kler.cn/a/272697.html

相关文章:

  • 【逆境中绽放:万字回顾2024我在挑战中突破自我】
  • Jenkins-基于Role的鉴权机制
  • 重拾Python学习,先从把python删除开始。。。
  • 鲍厚霖:引领AI广告创新,搭建中美合作桥梁
  • Java21 正则表达式
  • MarsCode青训营打卡Day1(2025年1月14日)|稀土掘金-16.最大矩形面积问题
  • C# EPPlus导出dataset----Excel3样式
  • pta系列之古风排版
  • [嵌入式AI从0开始到入土]16_ffmpeg_ascend编译安装及性能测试
  • 2024-03-14学习笔记(YoloV9)
  • 比特币,区块链及相关概念简介(二)
  • d3dcompiler_43.dll缺失,5个方法处理d3dcompiler_43.dll文件缺失
  • JavaEE--小Demo
  • 二叉搜索树、B-树、B+树
  • Hadoop大数据应用:HDFS 集群节点缩容
  • Windows系统安装GeoServe结合内网穿透实现公网访问本地位置信息服务
  • C语言学习笔记day8
  • 1057:简单计算器
  • onnx 格式模型可视化工具
  • 疫情网课管理系统|基于springboot框架+ Mysql+Java+Tomcat的疫情网课管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)
  • 网络安全实训Day5
  • 开源模型应用落地-qwen模型小试-合并Lora模型-进阶篇(八)
  • 比特币,区块链及相关概念简介(一)
  • Oracle中的commit与rollback
  • 27-Java MVC 模式
  • WebRTC实现一对多直播模式和弹幕发送功能