首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
Java博客
累计撰写
66
篇文章
累计创建
22
个标签
累计收到
12
条评论
栏目
首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
目 录
CONTENT
以下是
学习笔记
相关的文章
2024-05-29
websocket封装:完美支持断网重连、自动心跳!
本文介绍了一个功能完善的 WebSocket 客户端封装方案,支持断网重连与自动心跳机制,且完全兼容原生 API,零学习成本。封装核心基于 `EventDispatcher` 实现事件监听与派发,提供 `onopen`、`onmessage`、`onclose`、`onerror` 等生命周期钩子。断网重连通过记录重连次数、设置最大重连数和重连间隔实现,支持指数退避策略;自动心跳通过定时发送心跳包(每30秒一次)并监听服务端响应,若超时则触发重连。代码采用 TypeScript 和 JavaScript 双版本,结构清晰,可扩展性强,适用于实时数据推送场景。虽当前配置固定,但可通过参数化增强灵活性,整体方案稳定可靠,适合生产环境使用。
2024-05-29
29
0
0
前端开发
2024-05-21
Linux自动清理文件脚本
本文介绍了一个用于Linux系统清理旧日志文件的自动化脚本方案。脚本通过获取当前日期,计算出两个月前的日期,并在指定日志目录中查找符合命名模式(如 `sentinel-record.log.*.0*`、`mogu*.log.*` 等)的文件,提取文件名中的日期,筛选出早于两个月的文件并删除。脚本需保存为可执行文件(如 `clean_log.sh`),并赋予执行权限(`chmod +x clean_log.sh`)。为实现定时清理,可通过 `crontab -e` 编辑定时任务,例如每月1日2:30执行脚本,或每两个月执行一次(`30 2 1 */2 * /path/clean_log.sh`)。该方案可有效管理日志文件,防止磁盘空间被占用,适合部署在服务器或长期运行的系统中。
2024-05-21
18
0
0
建站系统
2023-02-13
equals 和 == 的区别
在Java中,`a == b` 和 `a.equals(b)` 的区别主要在于比较方式:`a == b` 比较的是对象的引用(即内存地址),只有当两个引用指向堆中同一个对象时才返回 `true`;而 `a.equals(b)` 比较的是对象的内容,通过调用 `equals` 方法实现逻辑相等性判断。对于自定义类,通常需要重写 `equals` 方法以实现基于属性值的比较。例如,两个 `String` 对象内容相同但引用不同,`==` 返回 `false`,而 `equals` 返回 `true`。此外,重写 `equals` 时一般需同步重写 `hashCode`,确保对象在哈希表等集合中行为一致。
2023-02-13
27
0
0
后端开发
2023-02-06
Sublime使用正则表达式去重
本文介绍了一种使用正则表达式进行文本处理的方法。在“Find”框中输入正则表达式 `^(.+)$[\r\n](^\1$[\r\n]{0,1})+`,用于匹配以相同内容重复出现的多行文本,其中第一行内容会被后续重复行匹配。该表达式可识别连续重复的相同行,允许中间有0或1个换行符。在“Replace”框中输入 `\1\n`,将匹配的重复内容替换为仅保留第一行并添加换行符,从而实现去除重复行、保留唯一行的功能。该方法适用于文本编辑器(如Notepad++)中的批量处理,可高效清理重复内容,提升文本整洁度。操作简单,适合处理日志、数据列表等重复结构文本。
2023-02-06
42
0
0
开发工具
软件推荐
2022-12-26
MongoDB数据处理
MongoDB 提供了两套数据管理工具:`mongodump`/`mongorestore` 用于整库备份与恢复,`mongoexport`/`mongoimport` 用于数据集的导出与导入。其中,`mongoexport` 可将集合导出为 JSON 或 CSV 格式,并支持指定字段和查询条件;`mongoimport` 则可将 JSON/CSV 文件导入数据库,支持字段映射和 CSV 头部行识别。备份时,`mongodump` 指定主机、数据库和输出目录,生成二进制备份文件;恢复时,`mongorestore` 指定主机、数据库和备份目录,可选择是否覆盖现有数据。对于认证数据库,需添加用户名、密码和认证数据库参数。这些工具适用于不同场景的数据迁移、备份与恢复操作。
2022-12-26
108
0
6
数据库
开发工具
2022-12-22
HTTP状态码
HTTP状态码是服务器在响应客户端请求时返回的三位数字代码,用于指示请求的处理结果。状态码分为五类:1xx(信息响应)、2xx(成功响应)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见状态码包括200(请求成功)、301(永久重定向)、404(资源未找到)和500(内部服务器错误)。状态码帮助浏览器和开发人员理解请求执行情况,优化用户体验和网站维护。例如,304表示资源未修改,可利用缓存;403表示服务器拒绝访问;503表示服务暂时不可用。通过状态码,可以精准定位问题,提升系统稳定性和响应效率。
2022-12-22
14
0
0
后端开发
前端开发
2022-12-20
优化SpringBoot项目启动时间和内存占用
作者使用Spring Cloud Alibaba搭建了包含7个微服务的项目,部署在2C4G的阿里云服务器上,采用Docker部署Spring Boot fat jar镜像。每个微服务默认占内存约500M,加上Nacos、Redis、Sentinel、RocketMQ、ELK等中间件,内存压力巨大,仅部署4个微服务便内存不足。为此,作者尝试通过JVM参数优化(如-Xms128m、-Xmx128m、-Xss256k等)将内存占用降至100~200M,但未达预期的几十M目标。经调研,作者计划采用Spring Native技术以实现更低内存占用和更快启动速度,其官方示例镜像仅50M,但构建时间较长(约2分钟),且该技术尚处快速迭代阶段,暂不推荐用于生产环境。文章未完待续。
2022-12-20
36
1
1
后端开发
2022-12-15
MySQL实用查询
本文提供了三个SQL查询语句,用于统计评分数据的不同维度。第一部分查询评分在不同分段(如90-100、85-89等)的记录总数,并单独统计未评分(rating_status=0)的记录,便于分析评分分布情况。第二部分统计最近七天内所有记录的总数,通过DATE_SUB函数计算日期范围,确保数据时效性。第三部分进一步细化,按天分组统计最近七天每天的记录数量,使用DATE_FORMAT对日期格式化并按天聚合,便于观察每日数据趋势。整体实现逻辑清晰,适用于数据监控与报表生成场景。
2022-12-15
37
0
0
数据库
2022-12-09
MySQL可重复读,一个 P0 事故!!!
本文讲述了一起因数据库从Oracle切换至MySQL后引发的“余额多扣”生产事故。原系统在Oracle下运行正常,但在MySQL默认RR隔离级别下,由于MVCC(多版本并发控制)机制导致并发事务读取旧版本数据,出现余额不足仍被扣款的问题。核心原因在于:事务2在t5时刻使用“当前读”获取最新数据(1,900),但因事务1尚未提交,该版本对事务2不可见;事务2只能回溯至上一版本(1,1000),导致错误判断余额充足并执行扣款。在RC隔离级别下,事务2每次查询重新生成一致性视图,能读取已提交的最新数据,避免了问题。本文深入解析了MySQL MVCC、一致性视图、快照读与当前读机制,揭示了在高并发场景下数据库隔离级别与数据一致性的重要关系,强调在数据库迁移或系统重构时需充分考虑并发控制行为的差异。
2022-12-09
33
0
0
数据库
错误合集
2022-12-09
基于SpringBoot拦截所有接口类及实现类中方法上面的自定义注解
本文介绍了在Spring Boot中使用自定义注解同时拦截接口方法和实现类方法的实现方案。通过定义`@Ax`注解、创建`AxMethodPointcutAdvisor`匹配切入点、实现`AxInterceptor`拦截器,并注册`DefaultAdvisorAutoProxyCreator`,实现了对注解方法的统一拦截。关键在于`DefaultAdvisorAutoProxyCreator`会自动为匹配的方法生成CGLIB代理,从而支持接口方法的拦截。测试显示,无论注解在接口或实现类上,均可成功拦截并执行前后逻辑。文章强调,接口必须有实现类,否则Spring启动会报错。该方案借鉴了“keetone”大神的思想,并提供了完整可运行的代码示例,适合在需要灵活使用自定义注解的场景中应用。(198字)
2022-12-09
23
0
0
后端开发
2022-12-09
Java-Collectors(Stream流)常用的20个方法
本文介绍了Java 8 Stream API中常用的`Collectors`工具类方法,用于对流中的元素进行收集、聚合和转换。主要内容包括:通过`toList()`、`toSet()`、`toCollection()`将元素收集为不同集合类型,其中`toSet()`自动去重;`toUnmodifiableList()`和`toUnmodifiableSet()`生成不可变集合;`counting()`统计元素数量;`minBy()`和`maxBy()`分别求最小/最大值,支持自然排序或自定义比较器;`joining()`用于拼接字符串;`averagingInt()`、`averagingLong()`、`averagingDouble()`计算平均值(返回Double类型);`summingInt()`、`summingLong()`、`summingDouble()`计算总和;`summarizingInt()`提供统计摘要(含计数、总和、最小值、最大值、平均值);`toMap()`创建Map,支持处理重复键;`partitioningBy()`按条件将集合分为两部分;`groupingBy()`实现多级分组,支持指定分组集合类型。这些方法极大简化了集合操作,提升代码可读性和效率。
2022-12-09
30
0
0
后端开发
2022-12-09
MongoDB更新修改内嵌文档操作
本文介绍了MongoDB中嵌套数据结构的更新操作。首先,通过`$`定位操作符实现对嵌套数组中特定元素的精准修改,如将“MongoDB专业指北”改为“MongoDB不专业指北”,适用于数组或对象数组场景。其次,使用`.`属性访问符更新下级文档属性,例如修改“scores.praise”的值,或结合`$`操作符更新嵌套数组中的元素。此外,文章还介绍了属性的增删操作:使用`$push`添加数组元素、`$addToSet`防止重复插入、`$pull`移除匹配元素、`$pop`删除数组首尾元素。通过这些操作符,可高效管理复杂嵌套结构数据,实现灵活的数据更新。
2022-12-09
17
0
0
数据库
1
2
3
鄂ICP备20003961号-3