收集总结2024年9月之后本人Java面试相关的问题,本人语言表达能力一直不太好,我发现涉及到底层原理或者源码相关的面试,看了很多视频或者博客的讲解,是明白了大概的原理,但面试时真的问到,语言组织总是不流畅,现场讲出来的很没有逻辑,真的需要写出来背一背。 线程池相关 非常高频!!!!! 常问:几个核心参数,流程,拒绝策略等 回答: 比较重要的几个:核心线程数,最大线程数,队列,拒绝策略,还有存活时间,时间单位,线程工厂。流程就是,会先用核心线程,核心线程用完了,会进队列,队列也满了,会用最大线程,如果也满了会执行拒绝策略。主要有几种,使用主线程,丢弃当前的任务,丢弃队列中最早的任...
HashMap源码解析 简介 HashMap 是基于哈希表的 Map 接口实现。该实现提供了所有可选的 Map 操作,并允许 null 值和 null 键。(HashMap 类大致等同于 Hashtable,但它不是同步的,并且允许 null 值和键。)该类不保证 Map 中元素的顺序,尤其是不保证顺序会随着时间的推移保持不变。 基础知识 数组的优势和劣势 优势: 快速访问**:数组的最大优势在于它能够通过下标快速访问任意元素。访问时间复杂度为O(1),这是由于数组是连续内存结构,计算下标即可快速定位元素。 **劣势...
一个数据页就相当于B+树中的一个节点。页是 MySQL 中磁盘和内存交互的基本单位,也是 MySQL 是管理存储空间的基本单位。一个页一般是 16KB ,当记录中的数据太多,当前页放不下的时候,会把多余的数据存储到其他页中,这种现象称为行溢出 。 一个页由7个部分组成 | 名称 | 中文名 | 占用空间大小 | 简单描述 | | :------------------: | :-------: | :----: | :----------: | | File Header | 文件头部 | 38...
20250108 乌鸫科技 自我介绍 项目介绍 你这个项目服务是会被别的项目依赖的,怎么保证服务的稳定或者后续有变化或者迭代的时候不影响别的业务 有做什么动作保证服务的稳定 怎么保证你的代码改动不影响上层业务 了解或者在项目中写过单测吗 有了解过哪些单测的方法或者单测在哪种场景下比较适合 单测的框架或者业界的方案 项目规模和人力投入,自己的职责 项目开始做的话,谁来分工,技术方案怎么出 技术方案是另一个同学做的吗 技术文档会包含哪些部分 之前的项目中有没有出现过突然的线上问题,你是怎么应对排查解决的 处理线上问题的工作占总体工作的百分比 tob和toc应用在业...
AQS AbstractQueuedSynchronizer 抽象队列同步器,构建锁或者其他同步组件的框架。 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable {} 成员变量 AQS底层是一个双端队列实现的,有head和tail两个Node节点,还有一个int类型的state变量表示同步状态。主要通过getState,setState,cas的方式设置...