
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Android 开发其实非常常见。B 根本找不到 Session。Cookie 体系并不友好。双 Token 只是入口。彻底讲透企业级认证体系。这是很多大厂都会做的。保存 Session。服务器内存压力巨大。
Linux内核中的container_of宏并非黑魔法,而是基于结构体连续内存布局的特性,通过成员地址反推整个对象地址的核心机制。它依赖offsetof计算成员偏移量,结合指针运算实现对象定位。这一设计支撑了Linux内核的侵入式链表和组合模拟继承等面向对象思想,展现了用C语言构建复杂对象模型的能力。理解container_of是掌握Linux内核设计哲学的关键,它揭示了内核如何通过结构体嵌入和指
摘要:JNI的设计本质是C语言实现的虚函数表模型。JNIEnv并非普通结构体,而是指向函数表的指针,(env)->xxx()的调用方式实际上是通过解引用获取函数指针并调用。这种设计实现了跨平台ABI稳定性,允许不同JVM实现替换函数表。参数中重复传递env是因为C语言没有this指针,需要显式传递上下文。JNI采用二级指针(JNIEnv)来维护函数表指针,体现了系统级的面向对象编程思想。理解
看到没有?现在再回头看:你会发现:下一篇我们正式进入 JNI。彻底讲透:为什么长这样。JNIEnv 为什么像对象为什么 JNI 到处是二级指针Java 和 Native 如何互调JNI 为什么本质是 C 风格 OOP。
本文介绍了数据库索引的核心概念与应用。索引本质是数据的"目录",能显著提升查询效率,避免全表扫描。文章阐述了常见索引字段(主键、用户名、用户ID等)、索引的代价(影响写入性能)以及企业级索引原则(WHERE/JOIN/ORDER BY字段优先)。通过EXPLAIN命令可分析SQL执行情况,MySQL索引底层主要采用B+树结构。全文强调索引不是简单"加速器",
《JOIN操作详解:数据库表关联的核心机制》摘要: JOIN是数据库实现多表关联查询的核心操作,通过ON条件将不同表中相关联的数据组合成完整的业务数据。LEFT JOIN会保留左表所有记录,右表无匹配则显示NULL;INNER JOIN则只返回完全匹配的记录。实际业务中常用LEFT JOIN来确保主表数据完整性,如用户列表必须显示所有用户。JOIN的本质是根据相同字段值(如user.id=user
文章摘要:本文探讨了企业级数据库设计中用户表结构的拆分策略。指出新手常犯的错误是将所有用户信息塞入单一user表,导致表结构臃肿。企业级解决方案是将用户数据拆分为三张表:user表(存储核心登录信息)、user_detail表(存储用户详情)和user_address表(存储收货地址)。这种拆分基于业务职责划分,形成1对1和1对多的表关系,提高查询性能并便于扩展。重点讲解了主键设计、唯一约束、时间
摘要:本文深入分析了Reactor模型如何解决高并发IO场景下线程池的不足。传统线程池在高并发IO时会因线程阻塞等待而导致资源浪费,Reactor通过IO多路复用(如epoll)实现事件驱动,仅在有数据就绪时才分配线程处理,极大提升了线程利用率。文章详细对比了不同IO模型演进,指出Reactor本质是将"线程驱动"转为"事件驱动",虽然解决了性能问题,但带来
本文深入解析线程池的价值与局限。线程池通过复用线程降低创建/销毁成本,控制并发数量(如10000次任务只需10个线程),显著提升资源利用率。但其本质仍是多线程模型,无法解决阻塞等待(如HTTP请求卡住线程)、操作系统级调度不可控、资源竞争等根本问题。特别在高IO场景中,阻塞线程会快速耗尽线程池,导致吞吐量骤降。文章指出,真正的优化方向在于Reactor事件驱动和协程调度模型,这些方案能从根本上解决
本文深入解析线程池的价值与局限。线程池通过复用线程降低创建/销毁成本,控制并发数量(如10000次任务只需10个线程),显著提升资源利用率。但其本质仍是多线程模型,无法解决阻塞等待(如HTTP请求卡住线程)、操作系统级调度不可控、资源竞争等根本问题。特别在高IO场景中,阻塞线程会快速耗尽线程池,导致吞吐量骤降。文章指出,真正的优化方向在于Reactor事件驱动和协程调度模型,这些方案能从根本上解决







