- 博客(28)
- 收藏
- 关注
原创 【MySQL进阶】——锁
MySQL锁机制是保证数据并发访问一致性和有效性的关键技术。锁按粒度分为全局锁(锁定所有表,用于备份)、表级锁(锁定整表,含表锁、元数据锁和意向锁)和行级锁(锁定单行,含记录锁、间隙锁和临键锁)。
2026-06-04 15:48:26
769
原创 【MySQL】—— SQL 优化
本文介绍了SQL性能优化的7个关键方面:数据插入优化,主键优化,排序优化,分组优化,分页查询优化,计数优化,更新优化。核心原则是合理设计索引、利用索引特性,以及避免全表扫描操作。
2026-06-02 17:00:55
189
原创 【Java基础】—— Stream流
Java 8引入的Stream流(java.util.stream.*)简化了集合和数组的操作,结合Lambda语法提升代码可读性和性能。
2026-05-31 12:04:27
166
原创 【Java】2026 Java学习路线:语言根基(三)——内部类
内部类是定义在另一个类内部的类,Java中共有四种类型:成员内部类、静态嵌套类、局部内部类和匿名内部类。成员内部类属于外部类实例,可访问所有外部成员;静态嵌套类属于外部类本身,只能访问静态成员;局部内部类定义在方法内,访问的局部变量必须为final;匿名内部类没有类名,常用于简化接口实现或参数传递。本文通过代码示例详细讲解各类内部类的语法、访问规则及使用场景,并总结了常见面试题。
2026-04-22 10:45:08
352
原创 【Java】内部类底层原理与存储机制(深入篇)
本文从字节码层面剖析Java内部类的底层实现,揭示编译器如何处理四类内部类:成员内部类通过添加`this$0`隐藏字段和`access$xxx`合成方法访问外部类成员;静态嵌套类不持有外部类引用,无内存泄漏风险;局部和匿名内部类通过复制机制捕获局部变量(要求final或effectively final)。还分析了内存布局、GC影响,并提供了内存泄漏修复方案及面试题速查。
2026-04-20 17:57:22
405
原创 【Java】抽象类与接口:从JVM内存布局到性能实测
本文深入探讨了Java中抽象类与接口的本质区别,从JVM内存布局、方法调用机制到性能表现进行全面解析。抽象类作为部分实现的蓝图,可以维护实例状态并通过虚方法表实现高效调用;接口作为纯粹的行为契约,通过接口方法表支持多重继承但性能略低。文章还分析了Java 8+接口的默认方法和私有方法特性,提供了混合设计模式的实践指导,并通过性能测试对比两者的调用效率。理解这些底层机制有助于开发者做出更合理的架构设计决策。
2026-04-20 09:11:29
417
原创 【Java】多态:从入门到精通
本文系统讲解Java多态的核心概念与底层原理。多态指同一方法在运行时具有多个不同表现形式,需满足继承、重写、父类引用指向子类对象三个必要条件。文章深入分析了编译时类型与运行时类型的区别,指出成员变量和静态方法不支持多态,并从JVM角度介绍了虚方法表、动态绑定过程及接口调用的特殊性。还对比了继承与接口两种实现方式,展示了多态在参数统一化、集合框架、设计模式中的实际应用,最后总结了常见面试题与开发最佳实践。理解多态不仅是掌握语法,更是培养面向接口编程思维的关键。
2026-04-17 15:22:17
423
原创 【Java】继承:从入门到JVM底层,一篇搞定
本文从语法、内存布局、JVM底层原理到实战陷阱,全面讲解了Java继承机制。核心要点包括:继承表达“is-a”关系、子类对象内存中包含完整的父类字段、方法调用依赖虚方法表实现动态分派、以及继承的三个常见坑(脆弱父类、违反里氏替换、层次过深)。文章强调“组合优先于继承”的设计原则,并给出了具体的决策框架——只有当“is-a关系成立、能完全替代父类、父类不频繁变化”三者同时满足时,才考虑使用继承。
2026-04-17 13:19:26
391
原创 【Java】封装:你的数据不该被随意触碰
文章以银行账户为例,展示了未封装时数据被随意篡改的风险,并详细讲解了封装的价值:保护数据完整性、隐藏实现细节、降低耦合度。重点介绍了实现封装的4种方法:访问修饰符、防御性拷贝、业务方法优先于Setter,以及通过完整银行账户案例演示了密码验证、余额存取等封装实践。最后提醒生产环境中需考虑线程安全问题,建议使用AtomicLong或synchronized保证并发安全。
2026-04-16 17:03:38
339
原创 【Java】类与对象的本质:从底层逻辑到面试实战
本文深入探讨了Java中类与对象的底层本质,从内存视角解析了类作为方法区中的元数据与对象作为堆内存实例的区别。文章详细阐述了方法调用机制、多态实现原理、构造方法真相等核心概念,对比了Java、C++和Python在对象模型上的差异。同时整理了面试高频问题及回答策略,包括内存分配、静态方法、多态实现等关键点,并提供了展示技术深度的建议。通过揭示从源代码到内存布局的完整链条,帮助开发者建立对面向对象编程的底层认知体系,在面试和技术实践中形成系统性思考。
2026-04-16 16:16:29
366
原创 【Java】2026 Java学习路线:语言根基(三)★ 核心
本文聚焦 Java 面向对象核心:封装、继承、多态三大特征,并讲解了类与对象、构造方法、this、static、代码块等基础语法,最后对比了抽象类(“是什么”)与接口(“能做什么”)的区别及使用场景。掌握这些是 Java 入门的必备根基。
2026-04-15 10:42:18
397
原创 【Java】2026 Java学习路线:语言根基(二)
本文介绍了Java基础中的三大核心知识点:流程控制、数组和字符串。流程控制包括顺序结构、分支结构(if/switch)和循环结构(for/while/do-while),重点讲解了各结构的语法和使用场景。数组部分详细说明了数组的定义、初始化和遍历方法,强调了索引和长度的概念。字符串章节则列举了length()、charAt()、equals()等常用方法,并指出字符串比较必须使用equals()而非==。全文通过大量代码示例帮助理解,适合Java初学者系统掌握这些基础语法。
2026-04-14 09:52:56
377
原创 【Java】流程控制、数组、字符串进阶篇--语言根基(二)
本文从底层原理出发,简要解释了 switch 为何比 if-else 快(跳转表或二分查找)、数组在内存中的连续存储与 length 属性来源,以及 String 不可变带来的常量池复用、线程安全等优势,并区分了 == 与 equals()、StringBuilder 优化等关键细节。
2026-04-14 08:54:37
380
原创 【Java】2026 Java学习路线:语言根基(一)
本文介绍了Java语言的基础语法要点,包括注释、关键字与标识符、变量与常量以及数据类型等核心内容。注释部分讲解了单行、多行和文档注释的使用规范;关键字和标识符部分详细列出了Java保留关键字和命名规则;变量与常量部分区分了普通变量和final常量的用法;数据类型部分系统梳理了8种基本类型及其特性。这些基础知识是Java编程的根基,掌握好这些内容将为后续学习奠定坚实基础。
2026-04-13 17:45:37
408
原创 【Java】类型转换(自动、强制)--语言根基(一)
本文介绍了Java类型转换的三大类:基本类型转换(小转大自动、大转小强制)、引用类型转换(向上自动安全、向下强制需用instanceof检查)和特殊类型转换(字符串与数字互转、自动装箱拆箱、char与数值转换)。掌握这些规则,能避免数据溢出、精度丢失和ClassCastException等常见问题。
2026-04-13 10:49:16
489
原创 【Java】变量、常量(final)--语言根基(一)
本文介绍了Java中变量和常量的核心概念与使用规范。变量分为局部变量、实例变量和类变量,各有不同的作用域和生命周期。常量通过final关键字实现,包括字面常量、final变量和static final类常量。文章详细列出了各类变量的命名规范、声明示例及使用场景,特别强调final引用的不可变特性。同时指出了常见编程陷阱,如浮点数精度问题、整数溢出和反射修改常量等,并提供了相应的解决方案。最佳实践建议使用专用常量类或枚举替代传统的接口常量模式。
2026-04-12 21:24:42
200
原创 【Java】包装类与自动装箱/拆箱--语言根基(一)
Java包装类将基本数据类型封装为对象,使基本类型能参与面向对象编程,主要用于集合框架、泛型、方法参数和空值表示。JDK1.5引入自动装箱/拆箱机制,简化代码但需注意性能问题。Integer类缓存-128到127的值,比较时应使用equals()而非==。常见陷阱包括null导致的NullPointerException、运算效率低以及重载方法的选择。包装类在解析输入、数据库操作和泛型集合中应用广泛,使用时需权衡便利性与性能开销。
2026-04-11 21:38:10
357
原创 【Java】2026年Java学习路线:入门篇
本文介绍了2026年Java学习路线中的入门基础知识,主要包括:1)JDK、JRE和JVM三者的区别与联系,其中JDK包含JRE,JRE包含JVM;2)Windows、macOS和Linux系统下Java环境变量的配置方法;3)编写第一个HelloWorld程序的步骤与注意事项;4)使用javac和java命令编译运行Java程序的方法;5)IntelliJ IDEA的安装与基础使用教程,包括创建项目和运行程序。这些内容是Java初学者必须掌握的基础知识,为后续深入学习打下坚实基础。
2026-04-08 09:03:06
665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅