在 mac os 系统管理多个不同版本的jdk环境,实现灵活切换。
ROW_NUMBER() OVER实战:优雅实现分组取最新记录,一行代码搞定学生最新成绩查询。
采用 SM2非对称加密 + SM4对称加密 + SM3摘要签名 的国密算法组合,确保API调用的安全性。
SM2数字签名,用于验证数据上传对象是否合法,是否是在服务端备案的客户端。
SM4对称加密业务数据:将客户端上传的业务数据进行加密,防止业务数据明文暴露出去。
SM3消息摘要签名:对业务数据进行hash计算,生成摘要签名,防止业务数据被人篡改。
BigDecimal 是 Java 中用于高精度计算的类,特别适用于财务计算和需要精确小数运算的场景。它克服了 float 和 double 类型可能出现的精度问题。
Spring Cloud 并不是一个单一框架,而是一套 微服务解决方案集合 ,它整合了很多组件,用来解决微服务架构中的常见问题,比如:服务注册与发现、配置管理、负载均衡、熔断限流、网关路由、链路追踪等
继承是一个纵向的层级。
抽象是横向的层级。
继承是为了能复用代码,建立类之间的层次关系。
抽象是隐藏具体的实现细节,只暴露行为的设计思想。
通过shell脚本,每天定时全量备份mysql数据库数据。并记录备份操作日志。
核心线程数 = CPU核数 × (1 + IO等待时间 / CPU时间)
最大线程数,在核心线程数的基础上加一点点做缓冲即可。
工作队列(workQueue),只需要缓冲1~3秒的突发QPS流量即可,其余的请求应该触发线程池的拒绝策略。
MySQL的执行流程:连接器 --> 分析器 --> 优化器 --> 执行器 --> innodb存储引擎;
B+树作为索引结构原因:B+树的非叶子节点不存储完整的数据,只存储索引字段数据,叶子结点是两两互相连接的;
JVM的内存模型,主要分为堆、方法区、栈、程序计数器、本地方法栈;
类的加载流程是加载 --> 验证 --> 准备 --> 解析 --> 初始化;
对象的创建流程是:类加载检查 --> 加载类 --> 内存分配 --> 初始化 --> 设置对象头 --> 执行 <init> 方法;
内存分配流程:先判断栈帧(逃逸分析),然后判断老年代(大对象),再是堆内存空间的年轻代(TLAB);
ArrayList、CopyOnWrityArrayList、HashMap等常见问题
SpringIOC的核心是配置解析、容器管理、依赖注入;
spring中bean的生命周期顺序是实例化 --> 依赖注入 --> 初始化 --> 销毁;
在实际应用中,我们经常需要对查询结果进行特定顺序的排序,而不仅仅是按照字母或数字的自然顺序。
MySQL提供了 ORDER BY FIELD 函数,允许我们根据自定义的顺序对查询结果进行排序。
本文将详细介绍 ORDER BY FIELD 的用法,并通过具体示例展示其强大功能。
ACID有四个特性,原子性、隔离性、持久性、一致性。
分别由undo log日志、锁和MVCC机制、redolog日志保证