爱吃油豆腐_个人页

爱吃油豆腐
个人头像照片
15
0
0

个人介绍

暂无个人介绍

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

详细说明
暂无更多信息

2025年03月

  • 03.22 21:48:15
    发表了文章 2025-03-22 21:48:15

    对CORS(跨域)的一些见解

    CORS(跨域资源共享)是W3C标准,用于解决AJAX跨源请求限制。浏览器与服务器需共同支持CORS,浏览器自动处理请求头,开发者无需额外操作。CORS分为简单请求与非简单请求:简单请求满足特定条件(如方法为GET/POST/HEAD且头信息有限制),浏览器直接发送;非简单请求需先进行“预检”请求(OPTIONS方法),确认服务器允许后才发送实际请求。服务器回应需包含Access-Control-Allow-Origin等字段,以控制跨域访问权限。
  • 03.22 21:10:54
    发表了文章 2025-03-22 21:10:54

    对 RESTful 的一些分析

    RESTful是一种基于资源的设计理念与规范,而非协议,其核心包括资源、表现层与状态转化。资源通过URI标识,操作(如HTTP的GET/POST/PUT/DELETE)实现状态变化。相比传统模式,RESTful风格具备结构清晰、标准统一、易扩展等优势,能有效避免接口设计中行为不规范的问题。合理使用RESTful需在设计初期明确资源概念,避免URI中混入动词,确保每个URI代表一种资源并支持标准HTTP动词操作。
  • 03.22 18:08:45
    发表了文章 2025-03-22 18:08:45

    细谈零拷贝

    本文探讨了文件传输功能的实现及其性能优化方法。传统方式通过用户缓冲区分块读写文件,存在大量内存拷贝与上下文切换问题,导致性能低下。零拷贝技术通过减少内存拷贝次数和上下文切换,大幅提升文件传输效率,尤其适用于小文件场景。同时,文章分析了PageCache的作用与局限性,指出在大文件传输时,异步IO+直接IO可避免PageCache带来的额外开销。最后总结,零拷贝适合小文件传输,而大文件场景推荐使用异步IO与直接IO结合的方式。
  • 03.22 16:59:12
    发表了文章 2025-03-22 16:59:12

    Thread.sleep(0) 到底有什么用?

    本文通过分蛋糕的比喻深入浅出地解析了 `Thread.Sleep` 函数的原理及其在操作系统中的作用。文章首先回顾了时间片算法和抢占式操作系统的调度机制,随后结合实例分析了 `Thread.Sleep(1000)` 和 `Thread.Sleep(0)` 的行为差异。前者让线程在指定时间内不参与 CPU 竞争,而后者触发操作系统立即重新计算线程优先级,可能让出 CPU 给其他线程。文章还解释了大循环中加入 `Thread.Sleep(0)` 的意义,即避免界面假死并优化资源分配。
  • 03.21 18:00:44
    发表了文章 2025-03-21 18:00:44

    ThreadLocal

    ThreadLocal 是一种为每个线程提供独立变量副本的机制,避免了多线程间的竞争问题。通过 ThreadLocal,每个线程拥有自己的变量实例,互不干扰。其核心原理是借助 Thread 类中的 `threadLocals`,以当前 ThreadLocal 对象为键存储线程专属数据。首次访问时若未初始化,则会调用 `initialValue` 方法设置默认值。此外,线程结束时会自动清理 ThreadLocal 数据,减少内存泄漏风险。这种设计适合需要线程隔离的场景,如数据库连接、用户会话信息等。
  • 03.21 16:06:16
    发表了文章 2025-03-21 16:06:16

    cheduleExecutorService提交死循环任务

    本文探讨了向调度线程池提交死循环任务时的运行机制。通过分析`scheduleAtFixedRate`方法的调用链路,详细解析了任务从包装为`ScheduledFutureTask`对象到最终执行的过程。核心步骤包括:任务被添加至延时队列、线程池启动Worker执行任务、周期性任务的时间计算与重新提交。若提交的是死循环任务,它将永久占用一个线程,可能导致其他任务无法调度。文章还深入剖析了`getTask`方法中任务获取逻辑及延时计算原理,帮助理解线程池内部工作机制。
  • 03.21 15:42:16
    发表了文章 2025-03-21 15:42:16

    ScheduleExecutorService

    本文深入探讨了Java中`ScheduleExecutorService`的周期调度原理,特别是当任务执行时间超过设定调度周期时的行为。通过源码分析发现,任务被封装为`ScheduledFutureTask`并加入延时队列`DelayedWorkQueue`。若任务运行时间超出调度周期,新任务会立即加入队列,导致实际调度间隔等于任务运行时间。文章结合代码实例和关键方法(如`runAndReset`、`setNextRunTime`)解析了调度逻辑,最终得出结论:调度时间将受任务执行时间影响而动态调整。此分析为理解线程池机制提供了详细参考。
  • 03.21 15:28:47
    发表了文章 2025-03-21 15:28:47

    Executors工厂类的分析

    本文详细解析了Java中`Executors`工厂类的多种方法,包括固定线程池(`newFixedThreadPool`)、单线程执行器(`newSingleThreadExecutor`)、缓存线程池(`newCachedThreadPool`)以及调度线程池(`newScheduledThreadPool`)等。每种方法的特点、应用场景及内部实现机制被逐一分析,例如固定线程池通过限制并发数确保资源稳定,缓存线程池适用于短生命周期任务的高并发场景。此外,文章还探讨了线程工厂的作用及Fork/Join框架中的工作窃取算法,帮助开发者根据实际需求选择合适的线程池类型。
  • 03.21 15:05:08
    发表了文章 2025-03-21 15:05:08

    ScheduledThreadPoolExecutor分析

    ScheduledThreadPoolExecutor 是一种适用于延时或周期性任务调度的线程池。它继承自 ThreadPoolExecutor,具备更强大的功能,可通过设定参数实现周期性任务调度。 内部实现中,`ScheduledFutureTask` 是关键类,通过 `run` 方法实现任务的循环调度与时间管理。`DelayedWorkQueue` 提供延迟队列功能,利用堆结构确保任务按优先级执行,并通过条件变量实现精确的延迟控制。整体设计结合了循环调度与延迟机制,满足高效的任务管理需求。
  • 03.21 11:59:39
    发表了文章 2025-03-21 11:59:39

    ThreadPoolExecutor解析

    本文深入解析了Java中`ThreadPoolExecutor`的实现原理,帮助理解线程池的工作机制。核心内容包括任务队列`workQueue`、线程工厂`ThreadFactory`、拒绝策略`RejectedExecutionHandler`等关键成员的作用。通过`submit`和`execute`方法的执行流程,展示了线程池如何根据`corePoolSize`和`maximumPoolSize`动态调整线程数量,并结合`keepAliveTime`管理空闲线程。最后分析了`Worker`类的`run`方法,揭示线程池通过循环从队列中获取任务并执行的核心逻辑。
  • 03.21 11:34:58
    发表了文章 2025-03-21 11:34:58

    Java线程池的实现架构

    线程池是一种用于管理多线程的池化技术,通过复用线程减少创建和销毁线程的开销。Java中的线程池架构包括`Executor`、`ExecutorService`、`ScheduledExecutorService`等接口,以及`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`两个核心实现类。`Executors`工厂类提供了便捷的线程池创建方法。线程池不仅简化了多线程编程,还能避免线程过多导致的资源消耗和切换开销。本文从使用示例入手,剖析了线程池的实现原理及其内部架构,重点分析调度线程池的实现机制。
  • 03.21 11:06:44
    发表了文章 2025-03-21 11:06:44

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

    本文主要讲解Java中的泛型擦除机制及其引发的问题与解决方法。泛型擦除是指编译期间,Java会将所有泛型信息替换为原始类型,并用限定类型替代类型变量。通过代码示例展示了泛型擦除后原始类型的保留、反射对泛型的破坏以及多态冲突等问题。同时分析了泛型类型不能是基本数据类型、静态方法中无法使用泛型参数等限制,并探讨了解决方案。这些内容对于理解Java泛型的工作原理和避免相关问题具有重要意义。
  • 03.20 23:06:42
    发表了文章 2025-03-20 23:06:42

    ArrayList扩容机制

    本文解析了Java中`ArrayList`的扩容机制。
  • 03.20 22:54:56
    发表了文章 2025-03-20 22:54:56

    some小窍门

    本文总结了 Java 开发中的几个重要编码规范与优化建议: 1. **Map 初始化大小**:避免直接初始化 HashMap 时指定不准确的容量。 2. **线程池创建**:禁止使用 `Executors` 工具类创建线程池。 3. **Arrays.asList 操作限制**:`Arrays.asLis` 返回的是固定大小的列表,不能调用修改方法。 4. **Map 遍历优化**:优先使用 `entrySet` 遍历 Map,效率高于 `keySet`。 5. **SimpleDateFormat 线程安全**:`SimpleDateFormat` 是线程不安全的,不应定义为 static。
  • 03.20 21:52:51
    发表了文章 2025-03-20 21:52:51

    为什么要单元测试

    单元测试是软件开发中的重要环节,旨在验证程序模块的正确性。相比传统依赖人工检测的方式,自动化单元测试能显著提升效率与质量。在现代软件工程中,单元测试占据测试金字塔80%的基础地位,有助于快速定位问题、优化代码设计并提高整体研发效率。然而,忽视单元测试可能导致“冰激凌筒”或“沙漏”等反面模式,使系统难以维护。优秀的单元测试不仅保障代码质量,还能增强团队协作与持续交付能力,是构建高质量软件不可或缺的一部分。
  • 发表了文章 2025-03-22

    对CORS(跨域)的一些见解

  • 发表了文章 2025-03-22

    对 RESTful 的一些分析

  • 发表了文章 2025-03-22

    细谈零拷贝

  • 发表了文章 2025-03-22

    Thread.sleep(0) 到底有什么用?

  • 发表了文章 2025-03-21

    ThreadLocal

  • 发表了文章 2025-03-21

    cheduleExecutorService提交死循环任务

  • 发表了文章 2025-03-21

    Executors工厂类的分析

  • 发表了文章 2025-03-21

    ScheduleExecutorService

  • 发表了文章 2025-03-21

    ScheduledThreadPoolExecutor分析

  • 发表了文章 2025-03-21

    ThreadPoolExecutor解析

  • 发表了文章 2025-03-21

    Java线程池的实现架构

  • 发表了文章 2025-03-21

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

  • 发表了文章 2025-03-20

    ArrayList扩容机制

  • 发表了文章 2025-03-20

    some小窍门

  • 发表了文章 2025-03-20

    为什么要单元测试

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

你好,我是AI助理

可以解答问题、推荐解决方案等