jvm

Lumos_7771 小时前
java·jvm·算法
Linux -- 线程线程:操作系统调度的最小单位,是进程内的一条执行路径。一个进程可包含多个线程同一进程内线程共享资源:地址空间、全局变量、堆、文件描述符
qq_392690663 小时前
jvm·数据库·python
Redis怎样应对Redis集群整体宕机带来的雪崩缓存雪崩的本质是Redis集群宕机导致所有请求绕过缓存直击数据库,引发DB QPS暴增、连接池打满、CPU 100%而崩溃;Java中需通过熔断器切断“缓存未命中→查库”链路,改走降级路径,并配合本地缓存+异步回源+分级熔断+预热等策略防控。Redis集群整体宕机时,缓存雪崩的本质是什么不是“缓存没数据”,而是“所有请求瞬间绕过缓存直击数据库”——Redis集群一挂,redis.get() 全部抛异常或超时,业务代码若没做兜底,就会无差别调用 userMapper.selectById() 这类数据库操作
X56618 小时前
jvm·数据库·python
SQL注入防御技术方案_基于正则表达式的输入清洗正则清洗不能防SQL注入,因其无法覆盖宽字节、编码混淆、函数嵌套等绕过方式;真正有效的是参数化查询、白名单校验字段名、最小数据库权限。正则清洗不能防SQL注入,别再写了正则表达式做输入清洗,对SQL注入基本无效。它既无法覆盖所有绕过方式,又容易因规则宽松放行恶意载荷、或规则严格误杀合法输入。真实攻击者早就不靠 ' 或 UNION 明文出现来注入了——用宽字节、注释符、编码混淆、函数嵌套,WHERE id = 1 AND (SELECT ...) 这类结构连正则都难识别边界。为什么 preg_replace
c++之路8 小时前
java·jvm·c++
C++ 高频易错点
wuminyu9 小时前
java·linux·c语言·jvm·c++
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析本文旨在记录近期研读Java源码的学习心得与疑难问题。由于个人理解水平有限,文中内容难免存在疏漏,恳请读者不吝指正。
tjl521314_2110 小时前
java·jvm·c++
02C++ 静态变量与链接性在 C++ 中,变量有 3 个属性:作用域(scope)、链接性(linkage) 和 存储持续性(storage duration)。
让梦想再启航10 小时前
jvm
JVM详解这是 JVM 的“入口”,负责将静态的 .class 文件加载到内存中。程序计数器 :记录当前线程执行的字节码行号,是唯一没有规定内存溢出的区域。 虚拟机栈:描述 Java 方法执行的内存模型,存储局部变量、操作数栈等(栈帧)。包含:  局部变量表、  操作数栈(用于临时存放中间数据,具体执行还是需要cpu)、  指向运行时常量池的引用、  方法返回地址(返回下一条要执行的指令地址)、  动态连接(编译之后有很多符号引用) 栈侦详解
m0_7485548119 小时前
jvm·数据库·python
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结应使用独立的 user_preferences 表存储动态偏好,以 JSON 字段支持灵活扩展、区分“未设置”与“显式关闭”,并通过乐观锁和事务封装避免并发覆盖。如何用 Go 实现可扩展的用户订阅偏好存储直接存数据库字段不是不行,但硬编码 email_newsletter、push_promo 这类布尔字段会快速失控——加个新渠道就得改表、改 struct、改所有 CRUD 逻辑。真正可持续的做法是把“偏好”当独立资源建模。用一张 user_preferences 表,字段至少包含:user_id(外键)
lee_curry19 小时前
java·jvm·垃圾收集器
第四章 jvm中的垃圾回收器第四章 jvm中的垃圾回收器垃圾回收器可以对年轻代回收,也可以对老年代回收,甚至是全堆和方法区的回收。 其中,Java堆是垃圾收集器的工作重点。 从次数上讲: 顺繁收集Young区 较少收集old区 基本不动Perm区(或元空间)
阿正呀20 小时前
jvm·数据库·python
Redis怎样实现本地缓存的高效失效通知Redis本地缓存失效通知不能依赖pub/sub,因其“发即忘”机制导致离线丢失;key过期事件有延迟、不覆盖主动删除;推荐用Redis List或Stream实现可重试的指令通道,并配合时间戳幂等控制。Redis 本地缓存失效通知为什么不能靠 pub/sub 直接推因为 PUB/SUB 是「发即忘」机制:消息不落地、无重试、订阅者离线就丢。本地缓存(比如进程内 Map 或 caffeine)如果靠它做失效通知,服务重启、网络抖动、消费延迟都会导致脏数据——这不是“偶尔不准”,而是“必然漏通知”。真实场景
2501_9012005321 小时前
jvm·数据库·python
mysql如何设置InnoDB引擎参数_优化innodb_buffer_poolinnodb_buffer_pool_size应略大于常驻热数据与索引总和,而非数据库全量大小;需结合Innodb_buffer_pool_reads/Read_requests比值(>1%则不足)、内存余量及并发负载综合设定,避免OOM或缓存过小。innodb_buffer_pool_size 设多少才不翻车这个值设错,MySQL 要么吃光内存 OOM,要么缓存太小查得比磁盘还慢。它不是越大越好,也不是按物理内存 70% 硬套就安全。关键看实际数据量和访问模式:innodb_buffer_pool_si
金銀銅鐵21 小时前
java·jvm·后端
[java] 编译之后的记录类(Record Classes)长什么样子(上)JEP 395: Records 中提到 JDK 16\text{JDK 16}JDK 16 正式支持记录类( Record Classes\text{Record Classes}Record Classes)。那么记录类在 class\text{class}class 文件中长什么样子呢?让我们一起来探索吧。
m0_495496411 天前
jvm·数据库·python
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异EXPLAIN显示type=ALL并非索引未建,而是InnoDB优化器因函数使用、隐式类型转换或复合索引顺序不匹配主动放弃索引,导致全表扫描。为什么EXPLAIN显示type=ALL,但明明加了索引?这不是索引没建,而是InnoDB优化器“主动放弃”了它——常见于WHERE中对索引列用了函数、隐式类型转换,或复合索引顺序不匹配查询条件顺序。MyISAM遇到这类情况有时还能“硬用”,但InnoDB更严格,一旦发现无法做最左前缀匹配或索引失效,就直接退化为全表扫描。WHERE DATE(create_time
forEverPlume1 天前
jvm·数据库·python
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】Eloquent Attribute Composition 并非 Laravel 原生功能,而是社区对使用访问器(如 getFullNameAttribute)组合字段逻辑的非官方说法;实际需手动处理空值、避免 N+1、不可用于 where/orderBy 等数据库操作,推荐用 Trait 或基类复用逻辑。什么是 Eloquent Attribute Composition,它不是 Laravel 原生功能PHP 中的 Laravel 并没有叫 Attribute Composition 的内置机制或官
2301_809204701 天前
jvm·数据库·python
mysql在docker容器中如何部署_利用docker-compose快速启动MySQL容器必须挂载/var/lib/mysql到命名卷以持久化数据,root密码须通过MYSQL_ROOT_PASSWORD设置,配置应挂载到/etc/mysql/conf.d/,并显式声明端口与时区。docker-compose.yml 里 mysql 服务必须显式挂载 /var/lib/mysql不挂载会导致容器重启后数据全丢——因为 MySQL 默认把数据写在容器内文件系统,而 Docker 容器销毁即清空。哪怕只跑测试,也建议用命名卷,别依赖默认匿名卷。实操建议:用 docker volume
2301_815901971 天前
jvm·数据库·python
SQL如何将多行记录聚合成逗号分隔字符串_GROUP_CONCAT技巧GROUP_CONCAT是MySQL专用聚合函数,需配合GROUP BY使用,默认逗号分隔、1024字节限制、自动跳过NULL;可加DISTINCT、ORDER BY、SEPARATOR及IFNULL处理,跨库需换STRING_AGG等替代方案。MySQL里用GROUP_CONCAT拼接多行字符串直接说结论:GROUP_CONCAT是MySQL原生支持的聚合函数,专为这事设计;其他数据库(如PostgreSQL、SQL Server)不认这个函数,别抄代码跑不通。常见错误是把它当普通字符串函数用,比如写成
zjy277771 天前
jvm·数据库·python
Layui tab选项卡如何动态根据ID值进行程序化切换element.tabChange() 是 Layui 官方唯一支持的程序化 tab 切换方式,需严格匹配 lay-filter 和 lay-id,且必须在 tab 渲染完成后调用,动态添加时须等 tabAdd() 回调执行完毕。element.tabChange() 是唯一可靠的切换入口直接调用 element.tabchange() 就能强制跳转到指定 tab,不需要模拟点击、也不依赖 dom 状态。这是 layui 官方唯一支持的程序化切换方式,其他手段(比如手动加 layui-this 类或触发
m0_602857761 天前
jvm·数据库·python
Redis如何修复槽位分配重叠的脏状态_使用redis-cli --cluster fix工具扫描并修复不一致的Slotredis-cli --cluster fix 并非万能修复器,仅解决Slot被多节点声明的明确冲突,对Slot丢失、元数据错乱、nodes.conf未刷新等问题无效;它只比对并修正冲突项,不处理“看似合理实则失效”的条目。redis-cli --cluster fix 为什么经常修不干净这个命令不是万能的自动修复器,它只解决“某个 Slot 被多个节点声明拥有”这种明确冲突,但对“Slot 完全丢失归属”“节点元数据严重错乱”“手动改过 nodes.conf 但没 flush”这类脏状态无能为力。它本质
2301_766283441 天前
jvm·数据库·python
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQLphpMyAdmin 本身不记录用户执行的每条 SQL,所有查询均由后端 MySQL/MariaDB 执行,SQL 审计必须依赖数据库服务层日志:MySQL 启用 general_log,MariaDB 推荐 slow_query_log + long_query_time=0。phpMyAdmin 没有内置 SQL 审计日志功能直接说结论:phpmyadmin 本身不记录用户执行的每条 sql,它只是一个 web 前端,所有查询都转发给后端 mysql/mariadb 执行。想审计 sql,必须依赖数据
zhoutongsheng1 天前
jvm·数据库·python
如何解决ORA-01078参数文件错误_pfile与spfile互相创建恢复ORA-01078报错需先确认参数文件类型:连库执行show parameter spfile,非空为spfile,为空则为pfile;若无法连接,检查$ORACLE_HOME/dbs下spfile.ora与init.ora存在性及启动时是否指定pfile参数。ORA-01078 报错时怎么快速定位是 pfile 还是 spfile 问题ora-01078 的根本原因不是“参数文件不存在”,而是 oracle 启动时读取初始化参数失败,且无法继续。关键要先确认实例当前依赖的是哪种参数文件——spfile(