- 博客(75)
- 收藏
- 关注
原创 关于反射的基本知识
反射(Reflection) 是 Java 提供的一种机制,让程序在运行时可以“查看”和“操作”自身的类、方法、字段等结构,即使编译时不知道具体类型。反射方式:你拆开遥控器,自己看电路图(类结构),然后手动接通“开机”线路——即使你没见过这型号也能操作。💡 普通业务代码尽量避免反射,优先用接口、泛型、多态等面向对象方式。想象你有一台未知型号的遥控器(对象),说明书丢了(没有源码)。反射 = 运行时动态探查和操作类的能力,强大但慎用。✅ 这就是反射:在运行时动态获取类的信息并操作它。✅ 什么时候用反射?
2025-12-04 10:33:04
176
原创 数据库基本数据统计
SUM(CASE WHEN category NOT IN ('测试1', '测试2') OR category IS NULL THEN 1 ELSE 0 END) AS otherFailCount。SUM(CASE WHEN category NOT IN ('测试1', '测试2') OR category IS NULL THEN 1 ELSE 0 END) AS otherCount。的数据中,结果为FAIL和PASS的数据。统计结果为FAIL的数据中,类型为。的数据分别有,类型为。
2025-11-27 16:44:15
257
原创 使用FormData上传图片和JSON数据注意事项
5、参数不匹配不会导致Current request is not a multipart request错误,而是会报Required request part 'xxx' is not present。设置@RequestPart(value='xxx', required=false)/@RequestParam(value='xxx', required=false)3、后端接收到字符串后可以使用JSON.parseObject(字符串,对象class文件)进行解析。7、后端接收参数区别。
2025-10-29 10:53:35
292
原创 Apache POI 如何获取表格中图片位置信息
Apache POI 通过对象中记录的row1属性(左上角行号)来确定图片的归属行。代码通过比较与当前处理的Row的rowNum来判断图片属于哪一行。
2025-09-29 12:14:11
223
原创 List<Map<String, String>>最简单的遍历方式
简单性:增强for循环最易读功能性:Stream API提供丰富的操作性能:大数据量时考虑并行流或分批处理可维护性:复杂的处理逻辑可以封装到工具类中根据具体需求选择最适合的遍历方式。
2025-08-28 14:46:43
635
原创 E-R图合并时的三种冲突
某企业开发信息管理系统平台进行E-R体验设计,人力部门定义的是员工实体具有属性:员工号、姓名、性别、出生日期、联系方式和部门,培训部门定义的培训师实体具有属性:培训师号、姓名和职称,其中职称={初级培训师,中级培训师,高级培训师},这种情况属于(),在合并E-R图时,解决这一冲突的方法是()这里可以通过第(2)题进行区分,因为员工号与培训师号可以合并、姓名可以合并,合并之后的实体要求保留两个实体共有的,去掉冗余的属性,因此,应该将培训师的职称加入员工实体,删除培训师实体。B、保留员工实体、删除培训师实体。
2025-05-16 15:25:33
746
原创 CMMI五个级别
在已定义级,组织建立了标准化的流程,并在整个组织范围内应用。这些流程被文档化,并且可以根据项目的具体需求进行裁剪。组织能够通过标准化的流程管理多个项目,确保一致性和可预测性。例如,一家大型IT服务公司可能已经定义了软件开发的标准流程,包括需求分析、设计、编码、测试和部署,确保所有项目都遵循相同的流程,提高一致性和可预测性。确保所有项目都遵循相同的流程CMM(Capability Maturity Model,能力成熟度模型)是用于评估和改进软件开发过程的一种框架。
2025-05-13 09:58:17
1280
原创 如何判断关系是有损分解还是无损分解,怎么判断是否保持函数依赖
特性无损分解保持函数依赖关注点数据完整性依赖完整性判断方法Chase算法/交集超码法闭包覆盖验证相互关系可单独成立,两者无必然联系可单独成立,需分别验证。
2025-02-28 17:46:07
1915
原创 计算直接地址索引、一级间接地址索引和二级间接地址索引、以及文件大小
文件系统中直接地址索引、间接地址索引的计算需要结合块大小、地址项大小等参数。
2025-02-27 12:05:06
1865
原创 页式存储中的逻辑地址转物理地址
在学习过程中避免不了考试,在计算机基础中,总会出现这一类题,今天就来讲解一下这种题的操作步骤,小耳朵们听好咯。逻辑地址由和:通常为 2^n 字节(如 4KB = 2^12,则偏移量占页号 = 逻辑地址高位部分偏移量 = 逻辑地址低位部分(位数由页面大小决定)假设逻辑地址为,页面大小为页号占(16−12=4)偏移量占页面大小为2的几次方就是几位偏移量逻辑地址=0001(页号)0011 1000 0101(偏移量)【大家数一数,4位页号+12位偏移量就是16位逻辑地址】
2025-02-25 20:03:15
2062
原创 十进制和二进制之间的转换
从左到右(小数点后第1位开始),每一位的值乘以2的负幂次。通过上述方法,可以快速完成整数和小数的十进制与二进制转换。从右到左(最低位到最高位),每一位的值乘以2的幂次。将小数部分不断乘以2,取整数部分作为二进制位。依次减去这些幂次值,标记对应二进制位为1。找到小于等于目标数的最大2的幂次。将十进制数不断除以2,记录余数。直到小数部分为0或达到所需精度。直到商为0时停止,将余数。(高位到低位依次填充)。
2025-02-25 15:55:56
7384
原创 前端监控与埋点
意义:当HTML文档被完全加载和解析之后,DOMContentLoaded事件被触发,无需等待样式表、图像的完成加载。意义:DOM树和页面加载完成时间,会触发domContentLoaded时间。dom:DOM解析耗时,domInteractive - responseEnd。首包时间耗时:responseStart - domainLookupStart。意义:读取缓存的时间。意义:建立连接的耗时。4、分析数据:对收集到的数据进行分析和挖掘,找出用户行为规律和需求,为产品的改进和优化提供数据。
2025-02-25 14:20:38
434
原创 从前端角度分析,当用户量比较大的情况下,怎么做一个直播福袋抽奖功能,要求说出具体思路。
核心挑战:实时性、高并发、稳定性。关键技术:WebSocket分片、请求合并、虚拟渲染、服务端时间同步。效果预期:支持10万级用户同时参与,中奖推送延迟<1秒,页面FPS稳定在50+。通过前后端协同优化(前端减轻请求压力,后端保障计算能力),可在高并发场景下实现流畅的直播抽奖体验。核心创新点分层过滤体系:在客户端完成多层校验,将无效请求消灭在萌芽状态分片化通道设计:通过哈希分片将亿级连接分散到多个集群边缘计算赋能:利用Web Worker分担服务端计算压力时间对抗机制:通过可信时间协议防止客户端篡改。
2025-02-24 09:41:31
1283
原创 HTTP 和 HTTPS 的区别
对比项HTTPHTTPS安全性不安全,明文传输。安全,加密传输。性能较快,资源消耗低。较慢,资源消耗高。SEO不利于 SEO。有利于 SEO。使用场景非敏感信息传输。敏感信息传输(如支付、登录)。HTTPS 是现代网站的标配,尤其是涉及用户隐私和数据安全的场景。虽然 HTTPS 的性能开销稍高,但通过硬件加速和优化(如 HTTP/2),这种差距已经大大缩小。
2025-02-20 09:44:50
1003
原创 事件循环是什么
事件循环是 JavaScript 处理异步操作的核心机制。任务队列分为宏任务队列和微任务队列。执行顺序:同步代码 -> 微任务 -> 宏任务 -> 微任务 -> ...理解事件循环有助于编写高效且可预测的异步代码。事件循环机制使得 JavaScript 能够在单线程环境中高效地处理多个任务,是现代 JavaScript 开发中的重要概念。
2025-02-20 09:28:06
593
原创 介绍一下Promise
Promise是处理异步操作的对象,具有三种状态:Pending、Fulfilled 和 Rejected。使用thencatch和finally方法来处理 Promise 的结果。支持链式调用,使得多个异步操作可以顺序执行。提供静态方法如和来处理多个 Promise。Promise 提供了一种更优雅和可读性更高的方式来处理异步操作,是现代 JavaScript 开发中的重要工具。
2025-02-20 09:19:53
483
原创 介绍一下闭包,闭包能被垃圾回收机制回收吗
闭包(Closure)是指一个函数与其词法环境的组合。简单来说,闭包允许函数访问其定义时的作用域中的变量,即使函数在其定义的作用域外执行。闭包是函数与其词法环境的组合。垃圾回收会在闭包不再被引用时回收其内存。如果闭包仍被引用,它不会被回收,可能导致内存泄漏。理解闭包和垃圾回收机制有助于编写高效且内存安全的代码。
2025-02-20 09:08:45
372
原创 var、let、const区别
在 JavaScript 中,varlet和const是用于声明变量的关键字,但它们的作用域、提升行为以及可变性等方面有显著区别。
2025-02-19 19:24:02
832
原创 TS中Any和Unknown有什么区别
在 TypeScript 中,any和unknown都是顶级类型(top types),表示可以是任何类型的值。但它们在使用和行为上有显著区别,主要体现在类型安全性和使用方式上。
2025-02-19 18:52:25
1136
原创 vH和vW、em和rem的作用,怎么使用和区分
使用vh和vw创建响应式布局。使用em进行局部尺寸调整。使用rem实现全局一致的尺寸控制。根据具体需求选择合适的单位,能有效提升布局的灵活性和一致性。
2025-02-19 18:44:34
511
原创 css主题色修改后会多出一个css吗?css怎么定义变量?
通过结合 CSS 变量和 JavaScript,可以轻松实现动态主题色的切换,而不会生成额外的 CSS 文件。Sass 和 Less 等 CSS 预处理器也支持变量,但它们的变量是静态的,编译后会被替换为具体的值。:在编译时会生成静态的 CSS 文件,无法动态修改。CSS 变量是现代 CSS 提供的一种功能,允许在样式表中定义可复用的值,并在需要时动态修改。在 CSS 中修改主题色时,通常不会直接生成一个新的 CSS 文件,而是通过。是实现动态主题色的首选方案,适合需要运行时修改样式的场景。
2025-02-19 18:33:29
616
原创 nextTick有什么作用
Vue 的 DOM 更新是异步的,数据变化后,Vue 会将 DOM 更新操作推入一个队列,并在下一个事件循环中批量执行。它的主要作用是确保在 DOM 更新完成后执行某些操作,从而避免因 DOM 未更新而导致的错误或不一致。是 Vue.js 中非常重要的工具方法,能够帮助我们更好地处理 DOM 更新后的逻辑,确保代码的正确性和可靠性。:Vue 的 DOM 更新是异步的,直接操作 DOM 可能获取到的是旧值。:在复杂的逻辑中,确保某些操作在 DOM 更新后执行。可以确保操作的是更新后的 DOM。
2025-02-19 18:23:22
581
原创 Vue2和Vue3的Hooks有什么区别
Vue3 引入了组合式 API,提供了类似 React Hooks 的功能,使得逻辑复用更加灵活和清晰。通过组合式 API 和自定义 Hook 实现逻辑复用,代码更清晰、灵活,且支持 TypeScript。通过自定义 Hook,可以将逻辑提取到单独的函数中,避免 Mixins 的命名冲突和来源不清晰问题。,提供了类似 React Hooks 的功能,使得逻辑复用和组织更加灵活。通过 Mixins 实现逻辑复用,但存在命名冲突和来源不清晰的问题。相关逻辑可以组织在一起,而不是分散在多个选项中,代码更易维护。
2025-02-19 17:49:43
1351
原创 选项式和组合式有什么区别
Vue2 主要使用选项式 API,而 Vue3 引入了组合式 API,提供了更灵活的逻辑组织和复用方式。是 Vue3 的新特性,适合复杂场景,提供更好的逻辑复用和 TypeScript 支持。两者可以共存,Vue3 支持在同一个项目中混合使用选项式 API 和组合式 API。通过自定义 Hook,可以将逻辑提取到单独的函数中,方便复用。相关逻辑可以组织在一起,而不是分散在多个选项中,代码更易维护。:对于大型组件或需要逻辑复用的场景,组合式 API 更灵活。:相关逻辑可以组织在一起,而不是分散在多个选项中。
2025-02-19 17:18:18
1095
原创 图片懒加载
图片懒加载(Lazy Loading)是一种优化技术,用于延迟加载页面中的图片,直到它们进入用户的可视区域(viewport)时才加载。这样可以减少页面初始加载时间,提升性能。,结合占位符和加载动画提升用户体验。是浏览器提供的原生 API,用于监听元素是否进入可视区域。为了提升用户体验,可以在图片加载前显示占位符或加载动画。监听页面滚动事件,检查图片是否进入可视区域。功能丰富,支持响应式图片、背景图懒加载等。不支持自定义加载占位符或加载动画。,可以通过监听滚动事件实现懒加载。属性,可以直接实现图片懒加载。
2025-02-19 12:52:17
976
原创 null和undefined的区别
是 JavaScript 中两个特殊的值,它们都表示“无”或“空”,但在语义和使用场景上有明显区别。表示变量已声明但未赋值,或函数没有返回值时的默认返回值。表示一个空对象指针,通常用于显式表示“无”或“空”。在 JSON 序列化时会被忽略(不会出现在结果中)。是 JavaScript 引擎默认赋予的初始值。(这是 JavaScript 的历史遗留问题)。用于初始化变量,表示该变量未来会被赋值为对象。用于表示变量未初始化或函数无返回值。用于显式表示空值或无效值。访问对象不存在的属性时。是开发者主动赋值的值。
2025-02-19 12:44:23
478
原创 ?.、!.、??、|| 和 &&区别
告诉 TypeScript 或 JavaScript,某个值一定不是。是常用的操作符,用于处理不同的逻辑场景。:判断左侧值是否为真值,如果是则返回右侧值,否则返回左侧值。:在 TypeScript 中明确告诉编译器某个值不为空。:访问深层嵌套对象时,避免因中间属性不存在而报错。:安全访问嵌套对象的属性或方法,避免因。),如果是则返回右侧值,否则返回左侧值。,如果是则返回右侧值,否则返回左侧值。:提供默认值,且可以接受假值被覆盖。:判断左侧值是否为假值(:提供默认值,且不希望。,避免类型检查报错。
2025-02-19 12:38:12
2052
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅