简历项目面试题
短剧 面试官:什么是S3 我: AWS 的 S3 是 AWS 提供的一种 对象存储服务,主要用于在云端存储和检索任何数量的数据。 面试官:用过MinIO吗? 我: 我没有用过MinIO🧠MinIO 是一个高性能、开源的对象存储系统,兼容 Amazon S3 接口,常用于私有云、本地部署或边缘计算场景下的对象存储。MinIO 是一个轻量、兼容 S3 的对象存储服务,适合本地部署和私有云场景,特别适合企业内部或开发者使用。 面试官:对象存储,文件存储,块存储的区别是什么? 我: 文件存储给人用、对象存储给程序用、块存储给操作系统用。 特性 文件存储 对象存储 块存储 📦 存储单位 文件(File) 对象(Object) 块(Block) 📁 组织方式 文件夹 + 文件路径结构 扁平结构,用唯一ID访问 无结构,由操作系统管理 🔌 访问方式 路径访问(如 /home/a.txt) API/URL 访问(如 s3://...) 挂载磁盘后由操作系统访问 🧠 元数据支持 有限(创建时间、大小等) 丰富(可自定义键值对) 几乎无(仅存数据) ...
MYSQL的面试题
数据库进阶学习
JVM垃圾回收
什么是垃圾回收垃圾回收指的是:自动清除程序中不再被使用的对象所占用的内存空间。JVM 会跟踪哪些对象仍然“可达”,哪些对象已经“不可达”,并自动释放不可达对象占用的内存。 内存泄漏:不再使用的对象在系统中未被回收。内存泄漏会导致内存溢出 哪些内存区域会被回收? 区域 是否 GC 管理 Java 堆(Heap) ✅ 主要回收区 方法区(元空间) ✅ 部分可回收(如类元信息) 栈、本地方法栈、程序计数器 ❌ 不受 GC 管理 方法区的回收🔹二、什么情况下类信息可以被回收?前提:类必须“不可达”才能被卸载。 JVM 会回收类的元信息,但 只有满足以下条件时,类才会被认为“无用”: 该类的所有实例都被回收; 加载该类的类加载器已被回收; 该类的 java.lang.Class 对象没有被引用。 👉 一句话:类加载器 + 类本身 + 所有实例都“不可达”,才能触发卸载和方法区回收。 使用的情况很少 堆的回收如何判断对象是否可以回收可达性分析算法 基本思想: 从一组被称为 GC Roots 的根对象出发,沿着对象的引用链向下搜索,凡是能从 GC ...
JVM内存结构
JVM的组成的运行时数据区JVM 由三大部分组成: - 类加载器 - 运行时数据区 - 执行引擎 运行数据区也分五个小区域,两大类 区域名称 线程共享 线程私有 用途说明 程序计数器 ✅ 当前执行指令位置 Java 虚拟机栈 ✅ 方法调用过程中的数据存储 本地方法栈 ✅ 本地方法调用 堆(Heap) ✅ 所有对象存储 方法区/元空间 ✅ 类信息、常量、静态变量 内存区域 存储内容 生命周期 堆(Heap) 所有对象实例、数组 和JVM同生共死 栈(Stack) 每个线程的方法调用栈帧 随线程创建与销毁 方法区 类的结构、常量池、静态变量等 和JVM同生共死 本地方法栈 Native方法调用信息 随线程创建与销毁 程序计数器 当前线程执行字节码的行号指示器 随线程创建与销毁 程序技术器程序计数器是 JVM 中的一块非常小的内存空间,用于记录当前线程所执行字节码的行号地址。 - 因为在Java虚拟机的多线程环境下,为了支持线程切换后能够恢复到正确的执行位置,每个线程都需要有一个独立的程序计数器,否则 ...
JVM字节码和类加载
字节码的组成+——————————+| 魔数(Magic Number) |+——————————+| 版本信息(Version) |+——————————+| 常量池(Constant Pool) |+——————————+| 访问标志(Access Flags)|+——————————+| 类信息(This/ Super) |+——————————+| 接口(Interfaces) |+——————————+| 字段(Fields) |+——————————+| 方法(Methods) |+——————————+| 属性(Attributes) |+——————————+ 一个简单的HelloWorld程序123456public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } ...
JVM导学
什么是JVM 定义:JVM(Java Virtual Machine,Java 虚拟机)是一个可以运行 Java 字节码程序的虚拟计算机,它是 Java 技术的核心组件之一。简单来说:JVM 是一种 运行 Java 程序的虚拟环境,它把 Java 编译后的 .class 字节码文件转换成机器可以理解的指令,并在不同的操作系统上执行,使得 Java 实现了“一次编写,到处运行”(Write Once, Run Anywhere)的理念。 主要作用: 执行 Java 字节码:Java 源代码被编译为字节码(.class 文件),由 JVM 来加载和执行。 内存管理:包括堆内存、栈内存、方法区等,是 JVM 自动垃圾回收(GC)机制的基础。 跨平台支持:JVM 为 Java 提供平台无关性,字节码在任意支持 JVM 的系统上都能运行。 安全性与隔离性:JVM 能隔离不同的应用程序并进行权限控制,防止恶意代码破坏系统。 性能优化:如 JIT(即时编译器),能在运行时将热点代码编译为本地机器码,提高执行效率。 比较JVM、JRE、JDK 名称 全称 简要定义 JVM J ...
JUC编程
重新认识JUC
第三方支付和项目部署
通用的支付逻辑
etcd
加强版的redis
stream
前提介绍: stream流的目的是简化我们对集合的操作,让我们更加方便的操作集合,但他并不是必须的,即使没有stream,我们依然可以通过 for,if实现相同的功能 stream的基本功能stream的map() .map() 是用于元素映射转换的中间操作,常见于对集合中每个元素进行某种处理,然后生成一个新的元素集合。 .map() 基本语法:1stream.map(element -> someFunction(element)) 简单示例: 1234List<String> names = Arrays.asList("Tom", "Jerry", "Spike");List<Integer> nameLengths = names.stream() .map(String::length) .collect(Collectors.toList()); nameLengths = [3, 5, 5] 工作中遇见的 .map() 123456// 前情提示 watchedL ...
springboot访问静态图片
访问静态资源
git合并小技巧
git
















