游客el3fk2yjpvdxe_个人页

游客el3fk2yjpvdxe
个人头像照片
0
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2025年12月

  • 12.30 22:34:47
    发表了文章 2025-12-30 22:34:47

    5.5 文章评论实体类的编写

    创建实体类Comment,位于cn.itcast.article.po包中,包含评论的ID、内容、发布时间、用户信息、点赞数、回复数、状态及关联文章ID等属性,并提供getter/setter及toString方法,用于封装评论数据。
  • 12.30 22:34:42
    发表了文章 2025-12-30 22:34:42

    5.3 技术选型

    本节介绍MongoDB的Java连接驱动mongodb-driver及SpringDataMongoDB持久层框架,通过搭建文章微服务工程,配置Spring Boot整合MongoDB,实现项目初始化与启动。
  • 12.30 22:33:54
    发表了文章 2025-12-30 22:33:54

    4.2.3 其他索引

    MongoDB提供地理空间索引支持平面与球面查询,文本索引实现高效字符串搜索并提取词干,哈希索引则用于散列分片,仅支持等值匹配,提升数据分布随机性。
  • 12.30 22:33:49
    发表了文章 2025-12-30 22:33:49

    4-MongoDB索引知识

    MongoDB索引通过B树结构提升查询效率,避免全表扫描。支持单字段和复合索引,前者适用于单一字段排序与查询,后者按字段顺序构建,优化多条件查询与排序操作,显著提升大数据量下的查询性能。
  • 12.30 22:33:02
    发表了文章 2025-12-30 22:33:02

    3.5.3 排序查询

    sort()方法用于对查询结果排序,1为升序,-1为降序,可按多字段排序。语法:db.集合名.find().sort({字段:1/-1})。与skip()、limit()联用时,执行顺序为先排序,再跳过,最后限制显示。
  • 12.30 22:32:36
    发表了文章 2025-12-30 22:32:36

    3.5.2 分页列表查询

    使用limit()限制查询返回的记录数,skip()跳过指定数量数据,实现分页。如每页2条:第一页skip(0).limit(2),第二页skip(2).limit(2),以此类推,默认limit为20,skip为0。
  • 12.30 22:32:30
    发表了文章 2025-12-30 22:32:30

    3.5 文档的分页查询

    统计查询使用count()方法,可统计集合中符合条件的记录数量。语法为db.collection.count(query, options)。如统计comment集合全部记录:db.comment.count();按条件统计userid为1003的记录数:db.comment.count({userid:"1003"})。默认返回所有匹配文档的数量。
  • 12.30 22:31:55
    发表了文章 2025-12-30 22:31:55

    3.4.4 删除文档

    MongoDB中删除文档使用`db.集合名称.remove(条件)`语法。如`db.comment.remove({})`将清空集合,慎用;删除指定_id的记录如`db.comment.remove({_id:"1"})`,按条件精准删除数据。
  • 12.30 22:31:47
    发表了文章 2025-12-30 22:31:47

    3.4.3 文档的更新

    MongoDB update语法用于修改集合中的文档,支持覆盖更新与局部更新。使用`$set`可避免字段丢失,`multi: true`实现批量修改,`$inc`则用于数值增减。注意指定查询条件与选项,确保数据准确更新。(238字)
  • 12.30 22:31:11
    发表了文章 2025-12-30 22:31:11

    3.4.2 文档的基本查询

    MongoDB使用`find()`查询数据,支持条件筛选与投影。`find({})`查所有文档,`_id`字段默认存在;可指定条件如`{userid:'1003'}`查询匹配记录,用`findOne()`返回第一条。投影参数控制字段显示,如`{userid:1,nickname:1,_id:0}`仅显指定字段,省略 `_id`。
  • 12.30 22:31:02
    发表了文章 2025-12-30 22:31:02

    3.4.1 文档的插入

    MongoDB中使用insert()或insertMany()向集合插入文档,支持单条或批量添加。若集合不存在则自动创建,未指定_id时自动生成,整型需用NumberInt(),日期用new Date()。键值对有序,区分类型和大小写,不可重复,键命名需遵循UTF-8规范,避免特殊字符。批量插入失败不回滚已成功数据,建议用try-catch捕获异常。
  • 12.30 22:30:09
    发表了文章 2025-12-30 22:30:09

    3.3.3 集合的删除

    集合删除语法为 `db.collection.drop()` 或 `db.集合.drop()`,成功返回 true,失败返回 false。例如:`db.mycollection.drop()` 可删除 mycollection 集合。
  • 12.30 22:29:35
    发表了文章 2025-12-30 22:29:35

    3.3.1 集合的显式创建(了解)

    MongoDB中使用`db.createCollection(name)`创建集合,name为集合名称,需遵守命名规范:非空、不含\0或system.开头,避免特殊字符如$。创建后可用`show collections`查看。
  • 12.30 22:28:56
    发表了文章 2025-12-30 22:28:56

    3.2 数据库操作

    MongoDB中使用`use 数据库名`选择或创建数据库,若不存在则自动创建。通过`show dbs`查看所有数据库,`db`查看当前库。集合需插入文档后才真正创建。数据库名须为非空、小写、不超过64字节的UTF-8字符串,不可含特殊字符。保留库包括admin(权限管理)、local(本地数据)和config(分片信息)。
  • 12.30 22:25:48
    发表了文章 2025-12-30 22:25:48

    2.4 Linux系统中的安装启动和连接

    本文介绍在Linux系统部署单机MongoDB用于生产环境的完整步骤,包括下载、解压、目录配置、日志与数据路径设置、配置文件编写及服务启停方法。操作类似Windows,通过配置`mongod.conf`实现后台运行,支持命令行与图形工具连接,并提供防火墙处理与安全关闭服务方案,确保稳定运行。
  • 12.30 22:25:43
    发表了文章 2025-12-30 22:25:43

    2.3 Compass-图形化界面客户端

    前往MongoDB官网下载MongoDB Compass,安装版按提示安装,压缩版解压后运行MongoDBCompassCommunity.exe。打开后输入主机地址、端口等信息,点击连接即可使用。
  • 12.30 22:24:52
    发表了文章 2025-12-30 22:24:52

    2.2 Shell连接(mongo命令)

    通过命令提示符输入 `mongo` 或指定地址端口连接MongoDB,使用 `show databases` 查看数据库,`exit` 退出。支持JavaScript脚本,更多参数查看 `mongo --help`。
  • 12.30 22:24:47
    发表了文章 2025-12-30 22:24:47

    2-MongoDB单机部署

    本文介绍MongoDB在Windows系统的安装与启动方法,包括下载32/64位安装包、解压配置、数据目录创建,并详述命令行和配置文件两种启动方式。强调选择稳定版版本(y为偶数),设置dbPath、日志路径及端口等参数,解决YAML配置中转义字符与Tab缩进问题,确保顺利部署运行。
  • 12.30 22:23:57
    发表了文章 2025-12-30 22:23:57

    1.5 MongoDB的特点

    MongoDB是一款高性能、高可用、高扩展的NoSQL数据库,支持嵌入式数据模型减少I/O,多存储引擎适应多样场景。提供丰富查询语言,涵盖文本、地理空间、聚合等,通过副本集实现高可用,分片技术实现水平扩展,满足海量数据与高性能需求。(238字)
  • 12.30 22:23:27
    发表了文章 2025-12-30 22:23:27

    MongoDB相关概念

    MongoDB是一款高性能、无模式的文档型数据库,适用于高并发、海量数据、高扩展性场景。广泛应用于社交、游戏、物联网、物流、视频直播等领域,适合数据量大、读写频繁、事务要求不高的应用。支持灵活的JSON-like文档存储,具备高可用、水平扩展、地理查询等优势,是Web2.0和大数据时代的理想选择。
  • 12.30 22:22:39
    发表了文章 2025-12-30 22:22:39

    InheritableThreadLocal

    ThreadLocal子线程无法继承父线程变量,而InheritableThreadLocal可实现父子线程间数据传递。其原理是在Thread初始化时,复制父线程的inheritableThreadLocals到子线程,通过createInheritedMap创建新的ThreadLocalMap,实现值的继承,适用于需传递上下文的场景。
  • 12.30 22:22:09
    发表了文章 2025-12-30 22:22:09

    ThreadLocal

    ThreadLocal是线程本地变量,为每个线程提供独立的变量副本,避免线程竞争。每个线程可独享自己的数据,互不干扰。通过get、set、remove方法操作线程私有数据,底层由Thread中的ThreadLocalMap存储,线程结束时自动清理,也可手动调用remove防止内存泄漏。
  • 12.30 22:22:04
    发表了文章 2025-12-30 22:22:04

    ScheduleExecutorService提交死循环任务

    本文探讨向调度线程池提交死循环任务的影响。通过分析`scheduleAtFixedRate`的执行流程,揭示任务如何被包装、调度及执行。死循环将导致线程被永久占用,无法释放,若线程池容量有限,后续任务将被阻塞,影响整体调度。结合延时队列与任务重提交机制,完整呈现周期性任务的运行原理。
  • 12.30 22:21:15
    发表了文章 2025-12-30 22:21:15

    ScheduleExecutorService

    当ScheduledExecutorService的调度周期小于任务执行时间时,任务不会并发执行,而是等待前一次完成后再立即执行。因任务被放入延时队列,下次触发时间基于上一次设定周期计算,若未完成则延迟执行,实际调度周期等于任务执行时间,避免了任务堆积和并发冲突。
  • 12.30 22:21:10
    发表了文章 2025-12-30 22:21:10

    Executors工厂类详解

    本文详解Java中Executors类提供的12种线程池创建方法,涵盖newFixedThreadPool、newCachedThreadPool、newSingleThreadExecutor及newWorkStealingPool等,分析其核心参数、工作原理与适用场景,帮助开发者根据并发需求合理选择线程池类型,提升性能与资源利用率。
  • 12.30 22:20:19
    发表了文章 2025-12-30 22:20:19

    ScheduledThreadPoolExecutor解析

    ScheduledThreadPoolExecutor继承自ThreadPoolExecutor,支持延时及周期性任务调度。其核心在于ScheduledFutureTask和DelayedWorkQueue:前者通过重设执行时间实现周期性,后者基于延迟队列实现任务的定时触发,结合addWorker机制确保线程池持续运行,从而完成精准调度。
  • 12.30 22:19:31
    发表了文章 2025-12-30 22:19:31

    ThreadPoolExecutor解析

    本文深入分析Java线程池ThreadPoolExecutor的实现原理,通过类图与源码解析,揭示其核心组件与工作流程。重点探讨任务提交、线程创建、任务调度及拒绝策略等机制,剖析Worker如何通过runWorker循环消费任务队列,从而掌握线程池高效运行的内在逻辑。(238字)
  • 12.30 22:19:08
    发表了文章 2025-12-30 22:19:08

    二、Java线程池实现架构

    Java线程池核心类包括Executor、ExecutorService、ScheduledExecutorService及其实现类ThreadPoolExecutor和ScheduledThreadPoolExecutor,Executors为工厂类,用于创建不同类型的线程池。ScheduledThreadPoolExecutor兼具普通执行与定时调度功能,是功能最全的线程池实现。
  • 12.30 22:18:28
    发表了文章 2025-12-30 22:18:28

    创建一个线程池

    使用`ExecutorService`创建单线程池,执行异步任务并提交返回结果的`Future`;通过`ScheduledExecutorService`定时调度,每秒固定频率执行任务,实现周期性操作。
  • 12.30 22:17:58
    发表了文章 2025-12-30 22:17:58

    线程池

    线程池通过复用预先创建的线程,避免频繁创建和销毁带来的开销,提升性能。它统一管理线程生命周期,减少资源消耗,防止线程过度切换,简化多线程编程,使开发者更专注于业务逻辑。
  • 12.30 22:17:10
    发表了文章 2025-12-30 22:17:10

    3.泛型擦除引起的问题及解决方法

    Java泛型在编译时进行类型检查并擦除类型信息,类型检查针对引用而非对象本身。擦除后泛型转为原始类型,通过自动强转实现安全取值。泛型不支持基本类型,静态成员不能使用类的泛型参数,但泛型方法可独立定义类型参数。instanceof不可用于泛型类型判断。
  • 12.30 22:17:05
    发表了文章 2025-12-30 22:17:05

    2.什么是泛型擦除后保留的原始类型

    泛型擦除后生成原始类型,类型参数被替换为限定类型或Object。如`Pair<T>`变为`Pair`,字段和方法中的T均替换为Object;若`T extends Comparable`,则替换为Comparable,确保类型安全与兼容性。
  • 12.30 22:16:19
    发表了文章 2025-12-30 22:16:19

    Java泛型类型擦除以及类型擦除带来的问题

    Java泛型在编译时会进行类型擦除,仅保留原始类型。例如`List<String>`和`List<Integer>`在运行时都变为`List`,导致`getClass()`结果相同。通过反射可绕过泛型限制添加非指定类型元素,证明泛型信息在运行期不可见,仅为编译期检查机制。
  • 12.30 22:16:14
    发表了文章 2025-12-30 22:16:14

    常见加载顺序

    该程序演示Java代码块执行顺序:静态代码块最先执行,仅一次;随后是实例初始化块,每次创建对象时执行;接着调用构造器。局部代码块位于方法内,用于限制变量作用域。运行结果依次输出:静态、初始化、构造器,重复三次。
  • 12.30 22:15:19
    发表了文章 2025-12-30 22:15:19

    ArrayList扩容机制

    该方法将指定元素添加到列表末尾。添加前先确保容量足够:若为初始空数组,则取默认容量10与所需容量的较大值,再进行扩容判断,最后将元素存入对应位置并返回true。
  • 12.30 22:14:38
    发表了文章 2025-12-30 22:14:38

    Eclipse运行SSM/SSH项目教程

    本教程介绍如何在Eclipse中配置并运行Java Web项目。涵盖JDK、Tomcat环境搭建,项目导入步骤(支持Maven与非Maven项目),以及Eclipse中配置Servers绑定Tomcat并关联项目的详细操作,助你快速启动项目运行。
  • 12.30 22:13:53
    发表了文章 2025-12-30 22:13:53

    6.并发修改同一记录时需要加锁

    推荐根据冲突概率选择锁策略:冲突小于20%时使用乐观锁,以version控制更新,重试不少于3次;否则采用悲观锁,可在应用层、缓存或数据库层加锁,确保数据一致性。
  • 12.30 22:13:23
    发表了文章 2025-12-30 22:13:23

    SimpleDateFormat不要定义为static

    SimpleDateFormat非线程安全,避免定义为static;若需静态使用,应加锁或采用ThreadLocal封装。JDK8推荐使用Instant、LocalDateTime和DateTimeFormatter,具备线程安全、不可变等优势,更简单高效。
  • 12.30 22:12:52
    发表了文章 2025-12-30 22:12:52

    使用 entrySet 遍历 Map 类集合 KV

    遍历Map时,keySet需两次遍历,效率较低;entrySet一次遍历即可获取键值对,性能更优。JDK8推荐使用Map.forEach方法。values()返回值集合,keySet()返回键集合,entrySet()返回键值对集合。
  • 12.30 22:11:24
    发表了文章 2025-12-30 22:11:24

    4.使用 entrySet 遍历 Map 类集合 KV

    遍历Map时,keySet需两次遍历,效率较低;entrySet一次遍历即可获取键值对,性能更优。JDK8推荐使用Map.forEach方法。values()返回值集合,keySet()返回键集合,entrySet()返回键值对集合。
  • 12.30 22:11:17
    发表了文章 2025-12-30 22:11:17

    Arrays.asList之后不要调用修改操作

    `Arrays.asList()`返回的列表不可直接增删元素,因其底层为固定大小的内部类,调用`add`等方法会抛出`UnsupportedOperationException`;且列表与原数组共享数据,修改数组内容会同步反映到列表中。
  • 12.30 22:10:31
    发表了文章 2025-12-30 22:10:31

    22

    Java中newFixedThreadPool和newSingleThreadExecutor因使用无界队列LinkedBlockingQueue(默认容量为Integer.MAX_VALUE),可能导致任务积压,引发内存溢出;而newCachedThreadPool和newScheduledThreadPool可能创建过多线程,同样存在OOM风险。
  • 12.30 22:09:32
    发表了文章 2025-12-30 22:09:32

    1.初始化Map大小并非用多少指定多少

    初始化HashMap时,指定容量并非直接生效,而是会调整为最近的2的幂次(如1变2、3变4)。为避免扩容性能损耗,建议使用Guava的Maps.newHashMapWithExpectedSize()方法,或手动按公式“预期大小 / 0.75 + 1”计算初始容量,提升性能。
  • 12.30 22:08:35
    发表了文章 2025-12-30 22:08:35

    请求体参数

    护理项目实体类,包含项目编号、名称、单位、价格、图片、护理要求等信息,支持状态(启用/禁用)与排序管理,用于养老服务中护理项目的配置与展示。
  • 12.30 22:07:46
    发表了文章 2025-12-30 22:07:46

    Controller的方法参数说明

    护理项目实体类,包含项目编号、名称、单位、价格、图片、护理要求等信息,支持状态(启用/禁用)与排序管理,适用于养老护理服务系统中的项目管理。
  • 12.30 22:07:03
    发表了文章 2025-12-30 22:07:03

    项目中使用

    为使护理项目接口在Swagger中可见,需添加@Api、@ApiOperation等注解进行说明。通过AI辅助快速生成含参数描述的完整注解代码,提升文档可读性与开发效率。
  • 12.30 22:06:39
    发表了文章 2025-12-30 22:06:39

    集成Knife4j

    knife4j是Java MVC框架集成Swagger的增强工具,前身swagger-bootstrap-ui,旨在提供更美观、易用的API文档界面。轻量如匕首,功能强大,支持全局参数设置、离线文档下载、友好测试界面。集成简便,通过引入starter依赖并访问/doc.html即可使用,助力前后端高效协作,提升接口调试与维护体验。
  • 12.30 22:05:47
    发表了文章 2025-12-30 22:05:47

    项目中集成

    若依框架在zzyl-admin模块集成Swagger,通过SwaggerConfig配置类实现。核心包括启用控制、API信息定制及安全模式设置,支持注解扫描生成接口文档,可通过http://localhost:8080/swagger-ui/index.html访问。
  • 12.30 22:05:02
    发表了文章 2025-12-30 22:05:02

    代码模块改造

    本节目标:集成Swagger实现接口文档自动生成,解决前后端对接难题;学习Velocity模板引擎,优化若依框架代码生成,简化实体类冗余代码,升级MyBatis为MyBatisPlus,提升开发效率与代码优雅性。(239字)
  • 发表了文章 2025-12-30

    3.2 数据库操作

  • 发表了文章 2025-12-30

    3.4.2 文档的基本查询

  • 发表了文章 2025-12-30

    2-MongoDB单机部署

  • 发表了文章 2025-12-30

    4.2.3 其他索引

  • 发表了文章 2025-12-30

    InheritableThreadLocal

  • 发表了文章 2025-12-30

    2.3 Compass-图形化界面客户端

  • 发表了文章 2025-12-30

    3.3.1 集合的显式创建(了解)

  • 发表了文章 2025-12-30

    5.3 技术选型

  • 发表了文章 2025-12-30

    3.5 文档的分页查询

  • 发表了文章 2025-12-30

    创建一个线程池

  • 发表了文章 2025-12-30

    3.5.2 分页列表查询

  • 发表了文章 2025-12-30

    4-MongoDB索引知识

  • 发表了文章 2025-12-30

    1.5 MongoDB的特点

  • 发表了文章 2025-12-30

    3.4.1 文档的插入

  • 发表了文章 2025-12-30

    3.4.4 删除文档

  • 发表了文章 2025-12-30

    ThreadPoolExecutor解析

  • 发表了文章 2025-12-30

    ScheduleExecutorService提交死循环任务

  • 发表了文章 2025-12-30

    5.5 文章评论实体类的编写

  • 发表了文章 2025-12-30

    2.2 Shell连接(mongo命令)

  • 发表了文章 2025-12-30

    2.4 Linux系统中的安装启动和连接

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息