- 博客(141)
- 收藏
- 关注
原创 Java面试宝典:MySQL InnoDB引擎底层解析
结合前文所述,InnoDB 的内存结构和磁盘存储结构的核心关系可总结为下图:图:InnoDB 内存结构 (Buffer Pool) 与磁盘结构 (表空间) 关系总览。
2025-07-30 23:30:00
原创 Java面试宝典:Spring MVC原理
分层清晰:组件各司其职(映射→适配→执行→渲染)扩展灵活:支持自定义参数解析器、视图解析器等无缝集成:完美兼容Spring IoC容器和AOP拦截器链:通过拦截器实现横切关注点内容协商:自动支持JSON/XML等多格式响应。
2025-07-30 22:30:00
原创 Java面试宝典:MySQL中的系统库
MySQL 包含多个关键系统数据库,它们存储了服务器运行过程中的元数据、状态信息及性能指标。这些系统库是 MySQL 内部管理机制的基石,提供对数据库底层运作的可见性。该库专注于性能监控,记录服务器运行时资源消耗、等待事件和执行统计。它收集包括 SQL 语句执行时间、内存使用量、I/O 操作等底层性能数据,帮助用户诊断性能瓶颈。所有数据存储在内存中,重启后丢失,但对实时性能分析至关重要。作为 MySQL 的“数据字典”,提供所有数据库对象的元数据信息。用户可以查询表结构、索引、视图、存储过程等详细信息。
2025-07-30 20:00:00
1
原创 Java面试宝典:Spring Boot 自动装配原理与配置文件加载顺序?
特性自动装配 (Auto-Configuration)配置加载 (Externalized Configuration)核心目标自动化组件注册外部化参数管理触发时机容器初始化阶段容器启动前关键技术条件注解 + 配置类扫描优先级覆盖 + 多环境隔离扩展方式自定义Starter自定义PropertySource配置文件依赖通过@ConfigurationProperties绑定直接读取配置值典型应用数据库连接池、Web服务器自动配置端口号、日志级别等运行时参数协同工作原理配置先行。
2025-07-29 22:15:00
27
原创 Java面试宝典:MySQL事务和事务的隔离级别
如果按上图顺序执行两次转账,最终甲的账户剩 9000 元(只扣了 1000 元),而乙的账户却成了 2500 元(多了 1000 元),这显然是不正确的。事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(包含多个DML语句,select语句不包含事务),其执行结果必须是“要不全部成功,要不全部失败”。此时,事务 B 读取的数据就是无效的“脏数据”。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
2025-07-28 23:00:00
177
原创 Java面试宝典:Spring Boot
SpringBootApplication // 复合注解// 启动入口@SpringBootApplication 注解分解→ 标识为配置类(实质是→ 扫描当前包及子包的@Component、@Service等→自动装配核心开关@EnableAutoConfiguration 实现原理通过导入装配逻辑加载文件读取所有自动配置类(如条件化装配@ConditionalOnClass(DataSource.class) // 类路径存在DataSource时生效@Bean。
2025-07-28 22:45:00
149
原创 Redis数据量过大的隐患:查询会变慢吗?如何避免?
Redis的瓶颈不在数据量本身,而在于数据形态和访问模式。通过分布式架构改造(如分片集群)、存储结构调整(如Hash分桶)和访问路径优化(如本地缓存),TB级Redis集群仍可保持毫秒级响应。Jemalloc按固定大小(8B/16B/32B)分配内存,小于申请空间时产生碎片。频繁修改数据导致空间重用效率降低(如Hash字段动态增减)。)>1.5时,内存分配延迟显著上升,影响写入速度。大Key/热Key阻塞。Redis数据量过大。
2025-07-28 21:30:00
875
原创 Java面试宝典:MySQL事务底层和高可用原理
验证自动提交状态:innodb_log_group_home_dir,该参数指定了redo日志文件所在的目录,默认值就是当前的数据目录。innodb_log_file_size,该参数指定了每个redo日志文件的大小,默认值为48MB,innodb_log_files_in_group,该参数指定redo日志文件的个数,默认值为2,最大值为100。所以磁盘上的redo日志文件可以不只一个,而是以一个日志文件组的形式出现的。这些文件以ib_logfile[数字](数字可以是0、1、2…)的形式进行
2025-07-28 20:00:00
33
原创 Java面试宝典:MySQL执行原理二
MySQL通过精确计算I/O+CPU成本选择最优执行计划,结合查询重写、子查询物化、连接顺序优化等技术提升性能。掌握成本计算原理与优化策略,可针对性设计高效SQL语句。
2025-07-27 23:30:00
133
原创 Java面试宝典:MySQL性能优化
优化层级实施要点预期收益架构级读写分离、分库分表、缓存300%+设计级范式优化、字段类型、索引200%+SQL级执行计划、索引利用、子查询优化100%+参数级缓冲池、线程缓存、日志配置30%-50%硬件级SSD、内存扩容、CPU升级20%-40%
2025-07-27 23:15:00
94
原创 Java面试宝典:MySQL索引
和慢日志分析,避免过度索引导致写入性能下降。在大数据场景下(亿级数据),建议采用。、全文索引、哈希索引三种核心类型,其中B+树索引是事务处理和复杂查询的基石。图示:聚集索引的叶子节点直接包含行数据。图示:辅助索引通过主键关联聚集索引。图示:三星索引的覆盖与排序设计。图示:联合索引的多级排序机制。InnoDB存储引擎支持。主键范围查询极速响应。排序操作免额外I/O。主键更新需数据行移动。
2025-07-27 21:00:55
42
原创 Java面试宝典:Spring DI
优先使用构造器注入保障对象不变性,Setter 注入用于可选依赖。2. 暴露 A 半成品 (ObjectFactory)6. 获取 A 的 ObjectFactory。5. 注入属性 → 从缓存获取 A。3. 注入属性 → 发现依赖 B。10. 移除 A 的工厂引用。9. 注入 B 完成初始化。递归获取依赖 Bean。使用解析后的参数实例化。7. 返回 A 半成品。8. 完成 B 初始化。
2025-07-27 16:00:00
14
原创 Java面试宝典:Spring循环依赖
的精巧设计,但其本质是“修补”而非“鼓励”循环依赖。复杂系统应通过架构设计(如服务拆分、依赖倒置)规避该问题,而非依赖容器机制。生成(否则注入的是原始对象,违背 AOP 语义)。在注入时动态决策是否返回代理对象(若有 AOP 需求)。若仅用二级缓存,无法兼容 AOP:代理对象需在属性注入。9. 查三级缓存→调用A的ObjectFactory。10. 返回A的原始对象(或代理对象)1. 创建A:实例化(无参构造)4. 创建B:实例化(无参构造):Spring 的三级缓存是。,确保注入正确的代理对象。
2025-07-26 09:30:00
12
原创 数据库设计双刃剑:范式规范与反范式性能的终极权衡
场景推荐策略关键指标高频交易系统范式化+BCNF数据一致性实时分析报表反范式化+冗余汇总字段查询延迟海量日志存储反范式化+分区表写入吞吐量金融核心系统范式化+Decimal精确计算计算精度终极原则在线事务系统优先范式化(3NF/BCNF)保障一致性分析型系统倾向反范式化(冗余+汇总)提升查询性能混合场景采用分层设计:底层范式化 + 上层物化视图。
2025-07-25 22:45:00
818
原创 Java面试宝典:Spring专题三
Spring Boot不是新框架,而是通过自动装配和约定简化Spring应用的搭建和部署过程,其核心仍然是Spring Framework的IoC容器和AOP等机制。实际开发中几乎总是使用ApplicationContext,仅在特殊场景(如移动设备)考虑BeanFactory。BeanPostProcessor是Spring扩展性的基石,AOP、事务管理等高级特性都建立在其基础上。Spring管理的Filter Bean。获取HandlerAdapter。执行Controller方法。
2025-07-25 21:30:00
43
原创 Java面试宝典:Spring专题二
1.Spring事务的本质与价值Spring事务本质是基于AOP的声明式事务封装,通过代理机制在目标方法前后注入事务管理逻辑(开启、提交/回滚)。业务解耦:将事务控制从业务代码剥离,通过配置或注解管理(如统一抽象:提供跨数据库的统一事务模型,屏蔽JDBC、JPA等底层差异。ACID保障原子性:依赖undo log回滚。持久性:通过redo log异步刷盘确保崩溃恢复。隔离性与一致性:由传播行为和隔离级别控制。2.Spring事务核心实现机制核心阶段与流程(1)实例化(Instantiation)
2025-07-24 21:15:00
34
原创 Java面试宝典:Spring专题一
里程碑事件2002:Rod Johnson发布《Expert One-on-One J2EE Design and Development》,提出轻量级容器概念2004:Spring 1.0正式发布,开创XML配置时代2009:Spring 3.0引入注解驱动开发2014:Spring Boot 1.0实现零配置快速启动2025:Spring Cloud 2025.0支持虚拟线程和函数式编程()当前版本生态:2025年主流LTS版本(Java 17+):深度整合响应式编程与云原生()
2025-07-23 22:00:00
60
原创 Java面试宝典:Maven
目录规范即生产力:严格遵守结构,避免自定义路径导致的构建失败微服务架构建议按业务域拆分模块(如订单、商品)而非技术层(Controller/Service)父POM集中管理Spring Cloud版本,子模块继承持续集成集成:在Jenkins/GitLab CI中执行mvn verify,结合-T 1C充分利用多核性能避坑提示:快照版本(-SNAPSHOT)可重复部署到Nexus快照库,而正式版本(1.0.0)发布到Release库后不可修改。
2025-07-18 21:30:00
124
原创 Java面试宝典:设计模式二
问题驱动原则:只有当模式真正解决痛点时才使用适度使用原则:避免过度设计带来的复杂性(YAGNI原则)模式组合原则:复杂场景常需组合多种模式(如工厂+策略)框架优先原则:优先使用框架内置模式实现(如Spring AOP代理)
2025-07-16 08:00:00
21
原创 Java面试宝典:设计模式一
工厂设计模式(Factory Pattern)核心思想:在接口和实现类之间引入过渡层,封装对象创建过程实现方式:定义一个创建对象的接口,由子类决定实例化哪个类应用场景数据库连接工厂(MySQL/Oracle连接)日志记录器(文件/数据库日志)支付网关抽象(支付宝/微信支付)
2025-07-15 08:38:20
18
原创 Java面试宝典:Web面试题深度解析
Servlet已成为Java Web开发标准,CGI逐渐被FastCGI等技术替代。:POST方法不等于安全传输,敏感数据必须使用HTTPS加密。
2025-07-11 16:54:23
61
原创 Java面试宝典:异常
下面关于 Java.lang.Exception类的说法正确的是()下列哪种异常是检查型异常,需要在编写程序时声明()Java 异常处理基于面向对象机制(异常是。D. 继承自FileInputStream。是检查型异常,需要在方法签名中用。B. 不支持Serializable。C. 继承自 AbstractSet。A. 继承自 Throwable。:所有运行时异常都是。
2025-07-07 17:43:59
35
原创 Java面试宝典:网络编程
定义:套接字是应用层与传输层之间的编程接口(API)作用:建立网络通信端点,实现不同主机间进程通信类比邮筒:应用程序将数据"投递"到Socket后,由下层协议完成传输港口码头:Socket负责数据的发送/接收,应用程序无需关注传输细节IP+端口:网络通信的基本坐标系统分层模型:理解网络通信的框架基础TCP vs UDP:可靠性优先 vs 实时性优先的选择Socket抽象:屏蔽底层细节的网络编程接口编程模式TCP:流式通信,面向连接,可靠性高UDP:数据报通信,无连接,实时性好。
2025-07-06 16:30:00
49
原创 Java面试宝典: IO流
本文解析了Java IO流相关面试题,重点区分字符流与字节流。字符流(Reader/Writer)以Unicode字符为单位,适用于文本处理;字节流(InputStream/OutputStream)以原始字节为单位,适用于二进制文件。关键题目分析包括: 识别面向字符的输入流(InputStreamReader); 文件字节读取的正确方法(skip偏移量计算); 流对象封装规则(字符流不能直接封装字节流); 内存流操作类(ByteArrayOutputStream)。
2025-07-05 22:00:00
41
原创 Java面试宝典:多线程一
摘要: run() vs start()区别:直接调用run()是普通方法调用,而start()会启动新线程。示例程序输出"pongping"。 可运行类创建方式:正确实现需满足public void run()方法签名,可通过继承Thread类或实现Runnable接口。 ThreadLocal原理:为每个线程提供独立变量副本,常用于框架级线程隔离,需注意内存泄漏问题。 锁机制对比:悲观锁采用阻塞等待,乐观锁使用CAS机制,两者适用于不同场景(写密集/读密集)。
2025-07-04 18:16:08
34
原创 Java面试宝典:集合一
特性HashMapHashtable线程安全否是null支持允许禁止继承关系Dictionary迭代器Fail-fastEnumerator推荐使用是否(遗留类)对比项HashMapHashtableHashSet存储结构键值对键值对仅存储对象线程安全否是否null支持允许禁止允许底层实现哈希表哈希表基于HashMap实现操作ArrayListVectorLinkedList随机访问极快(O(1))快(O(1))慢(O(n))
2025-07-02 22:45:00
36
原创 Java面试宝典:基础六
内部类隐式持有外部类引用,若内部类对象生命周期过长(如线程),会导致外部类无法回收。:静态方法中不可直接访问实例成员(变量/方法),但可通过参数传递对象引用访问。掌握这些核心概念可避免常见面试陷阱,提升代码设计的合理性。:返回值类型不包含在方法签名中,无法解决调用歧义问题。:调用时无法通过返回类型确定目标方法(如。,任何限制实现灵活性的修饰符均与之冲突。:易降低代码可读性(优先重构为方法)。:构造器与类名绑定,不参与继承。:值传递(引用类型传递引用副本)无法区分调用哪个版本)
2025-06-29 22:59:41
45
原创 Java面试宝典:基础五
A. 将 private int m 改为 protected int m。B. 将 private int m 改为 public int m。C. 将 private int m 改为 static int m。B. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。D. 将 private int m 改为 int m。C. 构造函数的主要作用是完成对类的对象的初始化工作。:在调用方法时,若要使方法改变实参的值,可以?:以下关于构造函数的描述错误的是?:以下代码执行后的输出是什么?
2025-06-29 22:40:12
47
原创 Java面试宝典:基础四
条件判断中优先使用短路运算符(性能更优)。:以下选项中选择正确的Java表达式?:无论条件如何,至少执行一次的循环是?:提升性能(避免不必要的计算)。:哪些运算符含有短路运算机制?:当条件依赖多个变量时必须用。,哪个表达式等于数组长度?:下面哪些声明合法?:以下代码输出什么?:以下代码输出什么?:以下代码输出什么?:以下代码输出什么?
2025-06-29 22:23:20
50
原创 Java面试宝典:基础三
类(Class)是程序的基本单位,但不是程序类型。A. Java中的继承允许一个子类继承多个父类。A. abstract可修饰字段、方法和类。C. 形式参数是方法调用时真正传递的参数。:运行时动态获取类信息并操作类的能力。C. 实例方法可直接调用其他类实例方法。:提供Java存取数据库能力的包是?A. 实例方法可直接调用超类实例方法。C. Java中的继承存在着传递性。B. 实例方法可直接调用超类类方法。D. 实例方法可直接调用本类类方法。:Java接口的修饰符可以为?:以下对继承的描述锚误的是?
2025-06-29 22:09:59
105
原创 Java面试宝典:基础二
类名为"MyClass.java"的类可被工程中所有类访问,正确声明为?B. construtor与class同名,但方法不能与class同名。C. abstract方法必须在abstract类中。D. Double a=1.0是正确的java语句。A. class中的construtor不可省略。A. java.lang.Cloneable是类。B. java.lang.Runnable是接口。C. Double对象在java.lang包中。D. 内存回收程序可以在指定时间释放内存。
2025-06-29 21:58:46
73
原创 Java面试宝典:基础一
(前置自增):先自增,后取值。⚡ 8. vs 与 vs 和 ::按位与(操作整数)或逻辑与(操作布尔值)。:按位或(整数)或逻辑或(布尔值)。特点:无论左侧结果如何,右侧操作数都会执行。 和 :短路特性::左侧为时,右侧不执行。:左侧为时,右侧不执行。高效场景:⏩ 9. 高效计算:2乘以8的最优解法答案:原理:左移运算()等价于乘以2的n次方。 = 2 × 2³ = 16。优势:CPU直接支持位运算,效率高于乘法指令
2025-06-29 21:42:12
66
【数据库技术】MySQL 8.0安装配置全指南:涵盖Windows图形化/免安装及Linux部署方案与常见问题解决
2025-06-24
【大数据技术】从核心概念到技术生态:大数据基础学习指南与实践路径规划介绍了大数据的基础概念
2025-06-19
【C/C++开发】VSCode配置C/C++开发环境全流程指南:涵盖安装、编译与调试配置
2025-06-16
【Python编程】多平台Python安装与开发环境搭建指南:覆盖Windows、macOS和Linux系统初学者入门教程
2025-06-15
它允许用户自定义并增强您最喜爱的网页的功能 用户脚本是小型 JavaScript 程序,可用于向网页添加新功能或修改现有功能 使用 篡改猴,您可以轻松在任何网站上创建、管理和运行这些用户脚本
2025-06-15
计算机编程期末作业 西邮校园导游咨询系统,毕业论文,共14页,2617字
2025-06-14
sql语言初级教程及学习资源
2024-06-12
中国行政区划数据获取(java版本生成插入sql)
2024-06-11
maven下载、安装、配置与使用教程(windows、Linux)
2024-06-11
elasticsearch-7.14.0和ik分词器
2024-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人