Vue百日学习计划Day9-15天详细计划-Gemini版
重要提示:
- 番茄时钟: 每个番茄钟为25分钟学习,之后休息5分钟。每完成4个番茄钟,进行一次15-30分钟的长休息。
- 灵活性: JavaScript 的概念较多,尤其是
this
、原型链、闭包和异步编程,可能需要更多时间来理解和消化。请根据个人情况调整。 - 多动手实践: JavaScript 学习的核心在于动手编写代码、调试和观察结果。请务必在每个知识点学习后进行编码实践。
- 资源利用:
- MDN Web Docs (JavaScript): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
- 现代 JavaScript 教程 (JavaScript.info): https://zh.javascript.info/
- 阮一峰 ECMAScript 6 入门: https://es6.ruanyifeng.com/
- 当前日期: 2025年5月16日 (用于知晓信息时效性,但本计划内容相对稳定)
学习目标 Day 9-15:JavaScript 核心 (ES6+)
- Day 9:JS 基础 - 数据类型、变量、操作符与流程控制
- 理解 JavaScript 的基本数据类型 (原始类型与对象类型)。
- 掌握
let
,const
与var
的区别和使用。 - 熟悉常用操作符 (算术、赋值、比较、逻辑)。
- 掌握基本的流程控制语句 (if/else, switch, for, while)。
- Day 10:作用域、闭包与
this
指向初步- 理解全局作用域、函数作用域和块级作用域。
- 理解什么是闭包,闭包的用途和常见场景。
- 初步接触
this
关键字,了解其在不同执行上下文中的指向。
- Day 11:对象、数组基础与常用方法 (一)
- 学习对象的创建、属性的读写、遍历。
- 学习数组的创建、访问、遍历。
- 掌握数组常用方法:
forEach
,push
,pop
,shift
,unshift
,slice
,splice
。
- Day 12:数组常用方法 (二) 与字符串方法
- 深入掌握数组的转换、迭代和查找方法:
map
,filter
,reduce
,find
,findIndex
,includes
。 - 掌握常用的字符串属性和方法 (length, toUpperCase, toLowerCase, trim, indexOf, slice, substring, split, replace)。
- 深入掌握数组的转换、迭代和查找方法:
- Day 13:ES6+ 核心特性 (一) - 函数、解构、模板字符串、展开/剩余
- 学习箭头函数的语法、特点及其与普通函数的区别 (特别是
this
指向)。 - 掌握数组解构和对象解构赋值。
- 熟练使用模板字符串。
- 理解并运用展开运算符和剩余运算符。
- 学习箭头函数的语法、特点及其与普通函数的区别 (特别是
- Day 14:原型链与继承基础,Promise 与异步编程入门
- 初步理解原型 (prototype)、原型链 (
__proto__
) 的概念以及 JavaScript 基于原型的继承方式。 - 理解同步与异步编程的区别。
- 学习 Promise 的基本概念 (pending, fulfilled, rejected) 和
then
,catch
,finally
的用法。
- 初步理解原型 (prototype)、原型链 (
- Day 15:Async/Await 与 ES Modules 模块化
- 学习
async/await
作为 Promise 的语法糖,如何简化异步代码的书写。 - 理解错误处理 (
try...catch
) 在async/await
中的应用。 - 掌握 ES Modules 的导入 (
import
) 和导出 (export
,export default
) 语法。
- 学习
每日学习计划 (3小时/天)
Day 9: JS 基础 - 数据类型、变量、操作符与流程控制
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: JavaScript 简介与引入方式。
- 内容: 了解 JS 的历史、能做什么。学习在 HTML 中通过
<script>
标签引入 JS (内联和外链)。 - 实践: 在 HTML 文件中写下第一行 JS 代码 (
console.log("Hello, World!");
) 并成功在浏览器控制台输出。
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 基本数据类型 (原始类型)。
- 内容: String, Number, Boolean, Null, Undefined, Symbol (ES6), BigInt (ES2020)。学习
typeof
操作符。 - 实践: 声明不同原始类型的变量,并使用
typeof
检查它们的类型。
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 变量声明:
let
,const
, (var
的基本了解及其问题)。 - 内容: 理解
let
和const
的块级作用域特性,const
用于声明常量。简要了解var
的函数作用域和变量提升问题。 - 实践: 尝试用
let
,const
声明变量,在不同作用域下测试其可见性。尝试修改const
声明的变量看会发生什么。
- 主题: 变量声明:
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 常用操作符。
- 内容: 算术操作符 (+, -, *, /, %, ++, --), 赋值操作符 (=, +=, -= 等), 比较操作符 (==, =, !=, !, >, <, >=, <=), 逻辑操作符 (&&, ||, !)。
- 实践: 编写小程序练习这些操作符,特别是
==
与===
的区别。 - (长休息: 15-30分钟)
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 流程控制语句 (一):
if/else
,switch
。 - 内容: 学习条件判断语句的语法和应用场景。
- 实践: 编写根据不同条件执行不同代码块的程序,例如判断一个数字是正数、负数还是零。
- 主题: 流程控制语句 (一):
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 流程控制语句 (二):
for
循环,while
循环,do...while
循环。 - 内容: 学习不同类型循环语句的语法和应用。
- 实践: 使用循环打印数字序列、遍历简单数组(索引访问)等。
- 主题: 流程控制语句 (二):
Day 10: 作用域、闭包与 this
指向初步
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 作用域 (Scope) - 全局作用域、函数作用域。
- 内容: 理解变量的可访问性范围。理解
var
的函数作用域和变量提升。 - 实践: 在函数内外声明变量,观察其作用域。
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 作用域 (Scope) - 块级作用域 (ES6)。
- 内容: 学习
let
和const
引入的块级作用域概念。 - 实践: 在
if
语句块或for
循环块中使用let
声明变量,观察其作用域。
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 闭包 (Closure) - 概念与基本形式。
- 内容: 理解什么是闭包(函数以及其声明时的词法环境的组合),为什么函数可以“记住”其外部作用域的变量。
- 实践: 编写一个简单的闭包示例,例如一个函数返回另一个可以访问外部函数变量的函数。
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 闭包 (Closure) - 用途与常见场景 (如模块化、防抖节流初步)。
- 内容: 探讨闭包的实际应用,如创建私有变量、数据封装。
- 实践: 尝试用闭包实现一个简单的计数器,其计数值不能从外部直接修改。
- (长休息: 15-30分钟)
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题:
this
指向初步 - 全局上下文与函数直接调用。 - 内容: 了解在全局作用域中
this
的指向 (浏览器中通常是window
)。在普通函数直接调用时this
的指向 (非严格模式下是window
,严格模式下是undefined
)。 - 实践: 在全局和普通函数中打印
this
,观察结果。
- 主题:
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题:
this
指向初步 - 作为对象方法调用。 - 内容: 理解当函数作为对象的方法调用时,
this
指向该对象。 - 实践: 创建一个对象,为其添加方法,在方法中打印
this
。
- 主题:
Day 11: 对象、数组基础与常用方法 (一)
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 对象 (Object) - 创建与基本操作。
- 内容: 对象字面量创建对象,属性的读取 (点表示法、方括号表示法)、修改、添加和删除。
- 实践: 创建一个描述个人信息的对象,并对其属性进行增删改查。
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 对象 (Object) - 遍历与方法。
- 内容: 使用
for...in
循环遍历对象属性。对象方法的定义和调用。 - 实践: 遍历上一个练习中创建的对象。为对象添加一个方法(例如打招呼)。
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组 (Array) - 创建与基本操作。
- 内容: 数组字面量创建数组,通过索引访问、修改数组元素,
length
属性。 - 实践: 创建一个包含数字和字符串的数组,练习访问和修改元素。
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组常用方法 (一):
forEach
,push
,pop
。 - 内容: 学习
forEach
遍历数组,push
在末尾添加元素,pop
删除末尾元素。 - 实践: 使用
forEach
打印数组每个元素。练习push
和pop
。 - (长休息: 15-30分钟)
- 主题: 数组常用方法 (一):
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组常用方法 (二):
shift
,unshift
。 - 内容: 学习
shift
删除头部元素,unshift
在头部添加元素。 - 实践: 练习
shift
和unshift
,对比与pop
和push
的区别。
- 主题: 数组常用方法 (二):
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组常用方法 (三):
slice
,splice
。 - 内容: 学习
slice
(浅拷贝,不修改原数组) 截取数组,splice
(修改原数组) 添加/删除/替换数组元素。 - 实践: 重点练习
splice
的不同用法,理解其参数含义。
- 主题: 数组常用方法 (三):
Day 12: 数组常用方法 (二) 与字符串方法
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组迭代方法 (一):
map
。 - 内容: 学习
map
方法如何基于原数组创建一个新数组,新数组的每个元素是原数组元素经过回调函数处理后的结果。 - 实践: 将一个数字数组中的每个元素平方后生成新数组。将一个对象数组中的特定属性提取出来生成新数组。
- 主题: 数组迭代方法 (一):
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组迭代方法 (二):
filter
。 - 内容: 学习
filter
方法如何创建一个新数组,包含所有通过回调函数测试的元素。 - 实践: 从数字数组中筛选出所有偶数。从对象数组中筛选出符合特定条件的对物。
- 主题: 数组迭代方法 (二):
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组迭代方法 (三):
reduce
。 - 内容: 学习
reduce
方法如何将数组中的所有元素累积处理为一个最终结果 (可以是任何类型)。理解其回调函数的四个参数 (accumulator, currentValue, currentIndex, array) 和初始值参数。 - 实践: 计算数组所有元素的和或积。将二维数组扁平化。
- 主题: 数组迭代方法 (三):
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 数组查找方法:
find
,findIndex
,includes
。 - 内容: 学习
find
返回第一个满足条件的元素,findIndex
返回第一个满足条件的元素的索引,includes
判断数组是否包含某个值。 - 实践: 在数组中查找特定元素或其索引。
- (长休息: 15-30分钟)
- 主题: 数组查找方法:
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 字符串常用属性与方法 (一)。
- 内容:
length
,toUpperCase()
,toLowerCase()
,trim()
,indexOf()
,lastIndexOf()
,includes()
。 - 实践: 练习这些字符串方法,处理简单的字符串操作。
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 字符串常用属性与方法 (二)。
- 内容:
slice()
,substring()
,substr()
(了解即可,不推荐),split()
,replace()
(基本用法)。 - 实践: 截取字符串,按分隔符分割字符串,替换字符串中的子串。
Day 13: ES6+ 核心特性 (一) - 函数、解构、模板字符串、展开/剩余
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 箭头函数 (Arrow Functions) - 语法与基本用法。
- 内容: 学习箭头函数的简洁语法,不同参数情况下的写法。
- 实践: 将普通函数改写为箭头函数。
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 箭头函数 (Arrow Functions) -
this
指向。 - 内容: 重点理解箭头函数不绑定自己的
this
,它会捕获其所在上下文的this
值。对比与普通函数this
的区别。 - 实践: 在对象方法、回调函数 (如
setTimeout
, 数组方法) 中使用箭头函数和普通函数,观察this
的指向。
- 主题: 箭头函数 (Arrow Functions) -
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 解构赋值 (Destructuring Assignment) - 数组解构。
- 内容: 从数组中提取值并赋给变量,支持默认值、剩余元素。
- 实践: 从数组中方便地获取元素,交换变量值。
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 解构赋值 (Destructuring Assignment) - 对象解构。
- 内容: 从对象中提取属性值并赋给变量,支持重命名、默认值、嵌套解构。
- 实践: 从对象中方便地获取属性,特别是在函数参数中使用对象解构。
- (长休息: 15-30分钟)
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 模板字符串 (Template Literals)。
- 内容: 使用反引号 (
`
) 创建字符串,支持嵌入表达式${expression}
和多行字符串。 - 实践: 使用模板字符串拼接包含变量和表达式的复杂字符串。
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 展开运算符 (…) 与剩余参数 (…)。
- 内容: 学习展开运算符在数组和对象中的应用 (如数组合并、对象合并/克隆)。学习剩余参数收集函数的多余参数。
- 实践: 使用展开运算符合并数组、克隆对象。编写一个接受任意数量参数并求和的函数。
Day 14: 原型链与继承基础,Promise 与异步编程入门
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 原型 (Prototype) 与
prototype
属性。 - 内容: 理解构造函数、实例对象和原型对象之间的关系。理解每个函数都有一个
prototype
属性 (指向一个对象)。 - 实践: 定义一个构造函数,查看其
prototype
属性,并向其添加方法。
- 主题: 原型 (Prototype) 与
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 原型链 (
__proto__
或Object.getPrototypeOf()
)。 - 内容: 理解每个对象都有一个内部链接到其原型对象,形成原型链。属性查找会沿着原型链进行。
- 实践: 创建构造函数的实例,检查实例的
__proto__
是否指向构造函数的prototype
。尝试访问实例自身没有但原型有的属性/方法。
- 主题: 原型链 (
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 基于原型的继承 (基础概念)。
- 内容: 简要了解如何通过修改原型链实现继承 (如
Child.prototype = Object.create(Parent.prototype)
)。重点是理解概念,不深入实现复杂继承。 - 实践: 阅读相关资料,理解继承的基本思想。
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 同步与异步编程概念。回调函数与回调地狱。
- 内容: 理解同步操作阻塞后续代码执行,异步操作不阻塞。了解回调函数作为处理异步结果的传统方式,以及可能导致的回调地狱问题。
- 实践: 使用
setTimeout
模拟一个异步操作,并使用回调函数处理结果。观察回调地狱的示例代码。 - (长休息: 15-30分钟)
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: Promise 基础 - 概念与状态。
- 内容: 学习 Promise 是什么 (一个表示异步操作最终完成或失败的对象)。理解其三种状态: pending (进行中), fulfilled (已成功), rejected (已失败)。
- 实践: 创建一个简单的 Promise 对象,手动将其状态改变为 fulfilled 或 rejected。
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: Promise 基础 -
.then()
,.catch()
,.finally()
。 - 内容: 学习如何使用
.then()
处理 Promise 成功的结果 (和链式调用),.catch()
处理失败的结果,.finally()
执行无论成功失败都会执行的代码。 - 实践: 封装一个返回 Promise 的异步函数 (例如使用
setTimeout
),然后使用.then()
和.catch()
处理。
- 主题: Promise 基础 -
Day 15: Async/Await 与 ES Modules 模块化
- 第1个番茄钟 (25分钟学习 + 5分钟休息):
- 主题:
async
函数。 - 内容: 学习
async
关键字如何让一个函数隐式返回一个 Promise。 - 实践: 将一个普通函数改写为
async
函数,观察其返回值。
- 主题:
- 第2个番茄钟 (25分钟学习 + 5分钟休息):
- 主题:
await
操作符。 - 内容: 学习
await
如何暂停async
函数的执行,等待一个 Promise 完成,并返回其结果。await
只能在async
函数内部使用。 - 实践: 结合上一天封装的返回 Promise 的函数,使用
async/await
来获取其结果,对比.then()
的写法。
- 主题:
- 第3个番茄钟 (25分钟学习 + 5分钟休息):
- 主题:
async/await
中的错误处理。 - 内容: 学习如何使用
try...catch
语句捕获await
后面 Promise 的 rejection。 - 实践: 修改 Promise 使其被 reject,然后使用
try...catch
捕获错误。
- 主题:
- 第4个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 模块化 (ES Modules) - 概念与
export
。 - 内容: 理解为什么需要模块化。学习如何使用
export
关键字导出变量、函数、类 (命名导出和默认导出export default
)。 - 实践: 创建一个
.js
文件 (math.js
),在其中定义一些函数和变量,并使用export
和export default
导出它们。 - (长休息: 15-30分钟)
- 主题: 模块化 (ES Modules) - 概念与
- 第5个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: 模块化 (ES Modules) -
import
。 - 内容: 学习如何使用
import
关键字从其他模块导入内容 (命名导入、默认导入、整体导入)。 - 实践: 创建另一个
.js
文件 (main.js
),从math.js
中导入之前导出的内容,并使用它们。在 HTML 中通过<script type="module" src="main.js"></script>
引入。
- 主题: 模块化 (ES Modules) -
- 第6个番茄钟 (25分钟学习 + 5分钟休息):
- 主题: JavaScript 核心回顾与练习。
- 内容: 快速回顾 Day 9 - Day 15 的核心概念,特别是 ES6+ 语法、Promise、async/await 和模块化。
- 实践: 尝试将之前写的一些小程序用 ES6+ 语法和模块化方式进行重构。或者找一些在线的 ES6+ 练习题进行巩固。
相关文章:
Vue百日学习计划Day9-15天详细计划-Gemini版
重要提示: 番茄时钟: 每个番茄钟为25分钟学习,之后休息5分钟。每完成4个番茄钟,进行一次15-30分钟的长休息。灵活性: JavaScript 的概念较多,尤其是 this、原型链、闭包和异步编程,可能需要更多…...
MySQL8.x新特性:与mysql5.x的版本区别
MySQL8.x新特性 1.与mysql5.x的区别:MySQL8.x新特性:与mysql5.x的版本区别-CSDN博客 2.窗口函数(Window Functions):MySQL8.x新特性:窗口函数(Window Functions)-CSDN博客 引言 …...
RabbitMQ 消息模式实战:从简单队列到复杂路由(三)
精准投递:路由模式 路由模式详解 路由模式是 RabbitMQ 中一种功能强大且灵活的消息传递模式,它在发布订阅模式的基础上,引入了路由键(Routing Key)的概念,实现了消息的精准路由和分发 。在路由模式中&…...
STM32 定时器主从模式配置解析
STM32 定时器主从模式配置解析 下面这两行代码是配置STM32定时器主从模式的关键设置 代码功能解析 TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2); // 选择从模式输出的触发源 TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset); // 选择从模式1. TIM_SelectInputTrigger(T…...
Leetcode76覆盖最小子串
覆盖最小子串 代码来自b站左程云 class Solution {public String minWindow(String str, String tar) {char[] s str.toCharArray();char[] t tar.toCharArray();int[] cnt new int[256];for (char cha : t) { cnt[cha]--;}int len Integer.MAX_VALUE;int debt t.length…...
Perl语言深度考查:从文本处理到正则表达式的全面掌握
阅读原文 前言:为什么Perl依然值得学习? "这个脚本用Perl写只需要5分钟!"——在当今Python大行其道的时代,你依然能在不少企业的运维部门听到这样的对话。Perl作为一门有着30多年历史的语言,凭借其强大的文…...
idea中Lombok失效的解决方案
Lombok 是一个 Java 库,旨在通过注解简化 Java 代码的编写,减少样板代码,提高开发效率。它通过自动生成常见的代码(如 getter、setter、构造函数等)来减少开发者的手动编码工作。 一般Lombok失效有四步排查方案&#…...
【LeetCode 热题 100】动态规划 系列
📁 70. 爬楼梯 状态标识:爬到第i层楼梯时,有多少种方法。 状态转移方程:dp[i] dp[i-1] dp[i-2],表示从走一步和走两步的方式。 初始化:dp[1] 1 , dp[2] 2。 返回值:dp[n],即走到…...
刷leetcodehot100返航版--双指针5/16
for (int i 0, j 0; i < n; i ) { while (j < i && check(i, j)) j ; // 具体问题的逻辑 } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中…...
DAY24元组和OS模块
元组 元组的特点: 有序,可以重复,这一点和列表一样元组中的元素不能修改,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。 很多流行的 ML/DL 库(如 TensorFlow, PyTorch, Num…...
CSS:三大特性
文章目录 一、层叠性二、继承性三、优先级 一、层叠性 二、继承性 可以在MDN网站上查看属性是否可以被继承 例如color 三、优先级...
Cross-Site Scripting(XSS)
1. XSS介绍 跨站脚本攻击(Cross-Site Scripting)简称XSS,人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩…...
掌握HTML文件上传:从基础到高级技巧
HTML中input标签的上传文件功能详解 一、基础概念 1. 文件上传的基本原理 在Web开发中,文件上传是指将本地计算机中的文件(如图片、文档、视频等)传输到服务器的过程。HTML中的<input type"file">标签是实现这一功能的基础…...
WebRTC中的几个Channel
一、我指的是谁? 以视频为例,常见的有:MediaChannel、VideoMediaChannel、WebRtcVideoChannel、BaseChannel、VideoChannel,那么,为什么要这么多Channel,只写一个叫做SuperChannel行不行(很多程…...
【设计模式】- 行为型模式1
模板方法模式 定义了一个操作中的算法骨架,将算法的一些步骤推迟到子类,使得子类可以不改变该算法结构的情况下重定义该算法的某些步骤 【主要角色】: 抽象类:给出一个算法的轮廓和骨架(包括一个模板方法 和 若干基…...
容器化-k8s-使用和部署
一、K8s 使用 1、基本概念 集群: 由 master 节点和多个 slaver 节点组成,是 K8s 的运行基础。节点: 可以是物理机或虚拟机,是 K8s 集群的工作单元,运行容器化应用。Pod: K8s 中最小的部署单元,一个 Pod 可以包含一个或多个紧密相关的容器,这些容器共享网络和存储资源。…...
黑马k8s(九)
1.Pod-生命周期概述 2.Pod生命周期-创建和终止 3.Pod生命周期-初始化容器...
Android trace中CPU的RenderThread与GPU
Android trace中CPU的RenderThread与GPU RenderThread是系统的GPU绘制线程,GPU渲染就是通常所谓的硬件加速,如果应用关闭硬件加速,就没有了RenderThread,只有UI Thread,即Android主线程。 Android GPU渲染SurfaceFlin…...
测试工程师如何学会Kubernetes(k8s)容器知识
Kubernetes(K8s)作为云原生时代的关键技术之一,对于运维工程师、开发工程师以及测试工程师来说,都是一门需要掌握的重要技术。作为一名软件测试工程师,学习Kubernetes是一个有助于提升自动化测试、容器化测试以及云原生应用测试能力的重要过程…...
接触感知 钳位电路分析
以下是NG板接触感知电路的原理图。两极分别为P3和P4S,电压值P4S < P3。 电路结构分两部分,第一部分对输入电压进行分压钳位。后级电路使用LM113比较器芯片进行电压比较,输出ST接触感知信号。 钳位电路输出特性分析 输出电压变化趋势&a…...
码蹄集——圆包含
MT1181 圆包含 输入2个圆的圆心的坐标值(x,y)和半径,判断断一个圆是否完全包含另一个圆,输出YES或者NO。另:内切不算做完全包含。 格式 输入格式:输入整型,空格分隔。 每行输入一组…...
ConcurrentSkipListMap的深入学习
目录 1、介绍 1.1、线程安全 1.2、有序性 1.3、跳表数据结构 1.4、API 提供的功能 1.5、高效性 1.6、应用场景 2、数据结构 2.1、跳表(Skip List) 2.2、节点类型: 1.Node 2.Index 3.HeadIndex 2.3、特点 3、选择层级 3.1、随…...
ProfibusDP主站转modbusTCP网关接DP从站网关通讯案例
ProfibusDP主站转modbusTCP网关接DP从站网关通讯案例 在工业自动化领域,Profibus DP和Modbus TCP是两种常见的通信协议。Profibus DP广泛应用于过程自动化、工厂自动化等场景,而Modbus TCP则常见于楼宇自动化、能源管理等领域。由于设备和系统之间往往存…...
第一次做逆向
题目来源:ctf.show 1、下载附件,发现一个exe和一个txt文件 看看病毒加没加壳,发现没加那就直接放IDA 放到IDA找到main主函数,按F5反编译工具就把他还原成类似C语言的代码 然后我们看逻辑,将flag.txt文件的内容进行加…...
【项目】自主实现HTTP服务器:从Socket到CGI全流程解析
00 引言 在构建高效、可扩展的网络应用时,理解HTTP服务器的底层原理是一项必不可少的技能。现代浏览器与移动应用大量依赖HTTP协议完成前后端通信,而这一过程的背后,是由网络套接字驱动的请求解析、响应构建、数据传输等一系列机制所支撑…...
AI最新资讯,GPT4.1加入网页端、Claude 3.7 Sonnet携“极限推理”发布在即
目录 一、GPT4.1加入网页端二、Claude 3.7 Sonnet携“极限推理”发布在即三、这项功能的关键特点1、双模式操作2、可视化思考过程3、可控的思考预算4、性能提升 四、Claude制作SVG图像1、Prompt提示词模板2、demo:技术路线图**Prompt提示词:**3、甘特图4…...
Android 中使用通知(Kotlin 版)
1. 前置条件 Android Studio:确保使用最新版本(2023.3.1)目标 API:最低 API 21,兼容 Android 8.0(渠道)和 13(权限)依赖库:使用 WorkManager 和 Notificatio…...
在 Kotlin 中,什么是解构,如何使用?
在 Kotlin 中,解构是一种语法糖,允许将一个对象分解为多个独立的变量。 这种特性可以让代码更简洁、易读,尤其适用于处理数据类、集合(如 Pair、Map)或其他结构化数据。 1 解构的核心概念 解构通过定义 componentN()…...
apisix透传客户端真实IP(real-ip插件)
文章目录 apisix透传客户端真实IP需求和背景apisix real-ip插件为什么需要 trusted_addresses?安全架构的最佳实践 示例场景apisix界面配置 apisix透传客户端真实IP 需求和背景 当 APISIX 前端有其他反向代理(如 Nginx、HAProxy、云厂商的 LBÿ…...
初学者如何用 Python 写第一个爬虫?
初学者如何用 Python 写第一个爬虫? 一、爬虫的基本概念 (一)爬虫的定义 爬虫,英文名为 Web Crawler,也被叫做网络蜘蛛、网络机器人。想象一下,有一个勤劳的小蜘蛛,在互联网这个巨大的蜘蛛网中…...
基于MNIST数据集的手写数字识别(CNN)
目录 一,模型训练 1.1 数据集介绍 1.2 CNN模型层结构 1.3 定义CNN模型 1.4 神经网络的前向传播过程 1.5 数据预处理 1.6 加载数据 1.7 初始化 1.8 模型训练过程 1.9 保存模型 二,模型测试 2.1 定义与训练时相同的CNN模型架构 2.2 图像的预处…...
QT6 源(103)篇三:阅读与注释 QPlainTextEdit,给出源代码
(10)关于文本处理的内容很多,来不及全面阅读、思考与整理。先给出类的继承图: (11)本源代码来自于头文件 qplaintextedit . h : #ifndef QPLAINTEXTEDIT_H #define QPLAINTEXTEDIT_H#include &…...
yocto5.2开发任务手册-7 升级配方
此文为机器辅助翻译,仅供个人学习使用,如有翻译不当之处欢迎指正 7 升级配方 随着时间的推移,上游开发者会为图层配方构建的软件发布新版本。建议使配方保持与上游版本发布同步更新。 虽然有多种升级配方的方法,但您可能需要先…...
LangPDF: Empowering Your PDFs with Intelligent Language Processing
LangPDF: Empowering Your PDFs with Intelligent Language Processing Unlock Global Communication: AI-Powered PDF Translation and Beyond In an interconnected world, seamless multilingual document management is not just an advantage—it’s a necessity. LangP…...
DDS(数据分发服务) 和 P2P(点对点网络) 的详细对比
1. 核心特性对比 维度 DDS P2P 实时性 微秒级延迟,支持硬实时(如自动驾驶) 毫秒至秒级,依赖网络环境(如文件传输) 架构 去中心化发布/订阅模型,节点自主发现 完全去中心化,节…...
TC8:SOMEIP_ETS_029-030
SOMEIP_ETS_029: echoUINT8Array16Bitlength 目的 检查当method echoUINT8Array16BitLength的参数中长度字段为16bit时,SOME/IP协议层是否能对参数进行序列化和反序列化。 对于可变长度的数组而言,必须用长度字段表示数组长度。否则接收方无法判断有效数据。 SOMEIP_ETS_02…...
Elasticsearch索引全生命周期管理指南之一
#作者:猎人 文章目录 一、索引常规操作二、索引mapping和别名管理 一、索引常规操作 索引数据特点: 索引中的数据随着时间,持续不断增长 按照时间序列划分索引的好处&挑战: 按照时间进行划分索引,会使得管理更加…...
本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
在数字化浪潮席卷全球的背景下,中国企业正面临前所未有的转型压力与机遇。随着《数据安全法》和《个人信息保护法》的全面实施,以及信创产业政策的深入推进,研发工具链的自主可控已成为关乎企业核心竞争力的战略命题。在这一关键赛道上&#…...
ARM服务器解决方案
ARM服务器解决方案已成为异构计算领域的重要技术路径,其核心优势与多元化场景适配性正加速产业渗透。以下为关键要点分析: 一、核心优势与架构设计 能效比优化 ARM架构基于RISC指令集,单节点功耗可控制在15W以下,较x86架构能效…...
【暗光图像增强】【基于CNN的方法】2020-AAAI-EEMEFN
EEMEFN:Low-Light Image Enhancement via Edge-Enhanced Multi-Exposure Fusion Network EEMEFN:基于边缘增强多重曝光融合网络的低光照图像增强 AAAI 2020 论文链接 0.论文摘要 本研究专注于极低光照条件下的图像增强技术,旨在提升图像亮度…...
嵌入式EasyRTC音视频实时通话SDK在工业制造领域的智能巡检/AR协作等应用
一、背景 在数字化浪潮席卷全球的当下,远程监控与驾驶技术已深度渗透至工业巡检、智能交通等核心领域。然而,传统方案普遍面临实时性瓶颈、高延迟传输及交互体验匮乏等痛点,严重制约行业智能化转型。EasyRTC作为前沿的实时音视频通信技术&am…...
uniapp-商城-58-后台 新增商品(属性子级的添加和更新)
前面对父级属性的添加进行了分析,这里再来继续做属性子级的数据添加,包含页面逻辑以及后台处理的逻辑。当然这里还是在前面的云对象的方式进行的。 本文介绍了在云对象green-mall-sku中添加子级属性的实现过程。首先,通过updateChild接口处理…...
基于springboot+vue的机场乘客服务系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 用户管理 航班信…...
npm和nvm和nrm有什么区别
npm 全称:Node Package Manager。 作用: 包管理:用于安装、共享、分发代码,管理项目依赖关系。项目管理:创建和管理 package.json 文件,记录项目依赖和配置信息。脚本执行:运行项目中的脚本&…...
几种排序方式的C语言实现(冒泡、选择、插入、希尔等)
## 分类 存储器类型: - 内排序(数据规模小 内存) - 外排序(数据库 磁盘) 是否基于元素之间的比较 - 基数排序 - 其他排序:冒泡、选择、插入、快速、归并、希尔、堆…… 时间复杂度 - O&#…...
【MATLAB例程】线性卡尔曼滤波的程序,三维状态量和观测量,较为简单,可用于理解多维KF,附代码下载链接
本文所述代码实现了一个 三维状态的扩展卡尔曼滤波 (Extended Kalman Filter, EKF) 算法。通过生成过程噪声和观测噪声,对真实状态进行滤波估计,同时对比了滤波前后状态量的误差和误差累积分布曲线。 文章目录 简介运行结果MATLAB源代码 简介 代码分为以…...
芯片测试之X-ray测试
原理: X-ray是利用阴极射线管产生高能量电子与金属靶撞击,在撞击过程中,因电子突然减速,其损失的动能会以X-Ray形式放出。而对于样品无法以外观方式观测的位置,利用X-Ray穿透不同密度物质后其光强度的变化,…...
机器学习中的特征工程:解锁模型性能的关键
在机器学习领域,模型的性能往往取决于数据的质量和特征的有效性。尽管深度学习模型在某些任务中能够自动提取特征,但在大多数传统机器学习任务中,特征工程仍然是提升模型性能的关键环节。本文将深入探讨特征工程的重要性、常用方法以及在实际…...
【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(1)
机器学习(Machine Learning) 简要声明 基于吴恩达教授(Andrew Ng)课程视频 BiliBili课程资源 文章目录 机器学习(Machine Learning)简要声明 机器学习之深度学习神经网络入门一、神经网络的起源与发展二、神经元模型(…...
反向传播算法:神经网络的核心优化方法,一文打通任督二脉
搞神经网络训练,**反向传播(Backpropagation)**是最核心的算法。 没有它,模型就只能瞎猜参数,训练基本白搭。 这篇文章不整公式推导,不搞花架子,咱就把最关键的几个问题讲明白: 反向传播到底是干啥的? 它是怎么一步步更新参数的? 哪些坑你必须避免? 一、反向传播是…...