- 博客(65)
- 收藏
- 关注
原创 计算机系统层次结构笔记
计算机系统层次结构是理解计算机工作原理的基础。从硬件层面看,计算机由输入输出设备、存储器、运算器和控制器组成;从软件层面看,高级语言需要经过编译转换为机器语言才能被计算机执行。CPU与主存的交互是计算机工作的核心,通过MAR和MDR实现地址和数据的传输。运算器负责执行算术和逻辑运算,控制器负责控制各部件协调工作。计算机的工作过程本质上是取指-执行的循环过程。栈帧机制是实现函数调用的关键,通过ebp和esp两个指针管理栈空间,call和ret指令实现函数的调用和返回。
2026-06-06 11:19:15
379
原创 并发编程 七
Java并发编程核心知识点摘要 本文系统介绍了Java并发编程中的关键容器与框架,重点分析了哈希表三巨头(HashMap/Hashtable/ConcurrentHashMap)的线程安全实现。主要内容包括: 并发容器优势:提供线程安全的数据结构,降低开发难度,优化性能,涵盖集合类、队列等场景。 哈希表对比: HashMap非线程安全,JDK8采用尾插法解决了环形链表问题 ConcurrentHashMap通过分段锁(JDK7)和CAS+节点锁(JDK8)实现线程安全 底层原理:详细解析哈希函数设计、散列思
2026-05-30 17:34:48
185
原创 并发编程 六
本文摘要: Java多线程核心知识点包括:1.线程协作join()机制,通过等待/通知实现线程有序执行;2.ThreadLocal线程私有变量实现原理,通过ThreadLocalMap存储线程隔离数据,需注意内存泄漏问题;3.线程池的4大优势、核心参数及工作流程,包括固定/缓存/单线程/定时线程池的特点。重点掌握join()的链式等待、ThreadLocal的弱引用设计和线程池的7大参数配置,面试常考察底层实现原理和实际应用场景。 (149字)
2026-05-30 17:30:22
179
原创 并发编程 五
Java并发编程核心摘要 本文深入解析Java线程本质与多线程应用场景:线程本质上是独立栈结构,每个线程拥有自己的虚拟机栈和局部变量;多线程最适合IO密集型任务,可提高CPU利用率。详解线程常用方法sleep()和yield()的区别,以及线程优先级特性。完整梳理线程6种生命周期状态(NEW/RUNNABLE/BLOCKED/WAITING/TIMED_WAITING/TERMINATED)及转换关系。最后介绍诊断工具jps和jstack的使用方法,用于排查线程死锁、阻塞等问题。文章纠正了原笔记中的多处表述
2026-05-30 10:43:56
179
原创 并发编程 四
Java并发编程核心概念摘要 本文系统介绍了Java并发编程的关键知识点: 基础概念:数据依赖、指令重排序、原子性/可见性/有序性三大特性。重排序分为编译器优化、指令级并行和内存系统三种类型。 Happens-Before规则:定义了8条保证内存可见性的规则,包括程序顺序、监视器锁、volatile变量等核心规则。 volatile关键字: 特性:保证可见性和有序性 内存语义:写操作刷新到主存,读操作从主存读取 双重检验锁(DCL)模式解析及volatile必要性 synchronized机制: 保证原子性
2026-05-30 10:31:34
219
原创 Spring Bean 作用域 & 生命周期
本文总结了Spring框架中Bean的作用域和生命周期核心知识点。Bean作用域包括6种:默认单例(singleton)、多例(prototype)以及4种Web专属作用域(request/session/application/websocket)。Bean生命周期分为5大阶段:实例化→属性填充→初始化前置处理→初始化→销毁,其中初始化阶段包含Aware接口、@PostConstruct、InitializingBean和自定义init-method的执行。重点区别在于单例Bean由容器管理创建销毁,而多
2026-05-27 16:04:40
402
原创 MyBatis缓存机制与注解开发
MyBatis缓存机制与注解开发核心要点 摘要:本文深入解析MyBatis的缓存机制与注解开发两大核心功能。缓存部分详细对比了一级缓存(SqlSession级别)和二级缓存(namespace级别)的工作原理、配置方式及失效场景,通过代码示例演示缓存命中逻辑。注解开发部分系统梳理了CRUD、结果映射、动态SQL等常用注解的语法规范,并提供了与XML配置的性能对比。文章特别强调了缓存使用中的注意事项,包括脏数据防范、序列化要求和适用场景选择,同时通过综合案例展示了注解与缓存的结合应用,为开发者提供了性能优化与
2026-05-25 09:49:00
236
原创 MyBatis关联映射
本文介绍了MyBatis中处理关联映射的两种核心场景:多对一(学生-老师)和一对多(老师-学生)关系。通过联表查询和分步查询两种方式实现关联映射,并详细讲解了ResultMap配置、懒加载优化等关键技术点。文章包含完整的实体类定义、MyBatis配置示例以及XML映射文件写法,展示了如何通过<association>标签处理多对一关系,使用<collection>标签处理一对多关系。同时提供了分步查询结合懒加载的性能优化方案,帮助开发者根据实际场景选择最佳实现方式。测试代码示例演示了关联查询的实际应用效果。
2026-05-25 09:20:31
420
原创 HTML 入门教程
这篇文章详细介绍了HTML的基础知识和核心标签用法。主要内容包括: HTML的定义与作用:作为网页的骨架和目录,与CSS(排版美化)和JavaScript(交互功能)共同构成网页。 HTML5标准结构:包含DOCTYPE声明、html根标签、head头部配置和body主体内容,强调UTF-8编码和移动端适配的重要性。 常用HTML标签分类讲解: 文本类标签(h1-h6标题、p段落、strong/em强调等) 链接标签a的各种用法 图片标签img的属性说明 三种列表形式(无序、有序、自定义) 表格标签tabl
2026-05-22 21:03:38
533
原创 并发编程三
本文系统介绍了Java并发编程的核心原理与实践。主要内容包括:1) synchronized锁的底层实现机制,通过monitor指令和对象头存储锁状态;2) 锁升级机制(偏向锁→轻量级锁→重量级锁)及其适用场景;3) 原子操作与CAS原理,分析ABA问题及解决方案;4) 内存可见性问题与volatile、synchronized的解决方案;5) 线程与进程通信方式的对比。文章深入剖析了并发编程的关键技术点,为开发者提供了全面的并发编程知识框架。
2026-05-22 20:59:16
391
原创 MyBatis动态SQL
本文介绍了MyBatis动态SQL的核心标签及其应用场景。主要内容包括:1)环境配置(SqlMapConfig.xml、User实体类、UserDao接口);2)动态SQL标签详解:where+if实现多条件灵活查询,set+if实现动态更新字段,trim标签作为万能替代方案;3)注意事项如OGNL表达式使用、模糊查询拼接等。通过代码示例展示了如何避免手动拼接SQL的常见问题,提高开发效率和代码可维护性。
2026-05-22 15:38:13
420
原创 MyBatis基础CRUD
本文介绍了MyBatis基础实战中的核心配置与实现要点。主要内容包括:1) MyBatis核心配置文件SqlMapConfig.xml的结构与关键配置项,如环境设置、事务管理和数据源;2) 实体类编写规范,强调字段映射和getter/setter方法的重要性;3) DAO接口设计原则,说明方法命名与返回类型的约定;4) Mapper映射文件的编写方法,展示查询、插入、更新和删除操作的SQL映射实现。通过User和Person两个实体的CRUD操作示例,系统梳理了MyBatis的基础使用流程和关键知识点。
2026-05-20 21:08:26
353
原创 并发编程二
Java并发编程核心要点总结 本文系统讲解了Java并发编程的核心概念与常见误区,重点包括: 线程安全基础:局部变量跨线程访问规则,final/effectively final变量的副本机制,引用数据类型与基本数据类型的区别。 volatile特性:只能保证可见性和禁止指令重排序,无法保证复合操作的原子性,通过缓存一致性协议实现。 同步机制:synchronized同时保证原子性、可见性和有序性,通过对象监视器实现互斥访问,锁粒度需覆盖整个原子操作。 锁的类型:实例对象锁、类锁的区别,以及无锁方法的并行特
2026-05-19 21:16:04
373
原创 并发编程一
本文系统梳理了并发编程的核心知识点。首先区分了并发(交替执行)与并行(同时执行)的概念,指出并发问题的根源来自计算机硬件的物理限制。详细讲解了线程状态、上下文切换及其性能优化方法,分析了多线程在IO密集型和CPU密集型任务中的适用性。重点阐述了线程同步机制(join/synchronized/sleep/wait)、死锁避免原则、内存模型与可见性问题(volatile关键字原理)、原子操作实现等关键技术。最后总结了并发编程的核心挑战是解决原子性、可见性和有序性问题,强调要根据任务类型选择合适的并发策略,并注
2026-05-18 23:43:34
416
原创 HTTP协议
本文详细介绍了HTTP协议的核心知识,包括协议概述、请求/响应结构、状态码分类、请求方法和会话管理。主要内容涵盖:HTTP无状态、无连接的特点及版本演进;请求/响应的四部分结构;5类状态码及其含义;8种请求方法的特性;Cookie和Session的工作原理与区别。文章通过表格对比和示例说明,系统性地讲解了HTTP协议的基础概念和关键机制,适合作为网络开发者的学习参考。
2026-05-16 23:37:06
460
原创 Java Web实现简易CRUD操作笔记
本文介绍了一个基于Servlet+MySQL的简易CRUD系统实现。项目围绕动物、人员、学生三张表,通过Servlet处理HTTP请求,调用封装的数据库工具类完成操作。核心工具类DBConnection负责数据库连接管理,MysqlUtil封装了增删改查方法及JSON转换功能。Servlet层分为查询、新增、修改三类操作,均遵循接收参数→拼接SQL→调用工具类→返回JSON响应的流程。查询操作返回标准格式JSON数据,增改操作根据执行结果返回成功/失败状态。整个系统采用原生JDBC和Servlet技术栈,适
2026-05-13 23:01:34
958
原创 计算机网络核心知识
本文系统梳理了计算机网络核心知识,重点包括:1)网络分层模型(OSI七层与TCP/IP四层)及其作用;2)TCP/UDP协议特性对比;3)访问网站的完整8步流程(从DNS解析到页面渲染);4)常用网络命令和HTTP状态码。文章强调理解数据流动过程比死记协议更重要,掌握这些知识能有效解决开发中的网络问题并应对技术面试。核心在于明白数据如何在不同设备间可靠传输,所有协议和机制都服务于这一目标。
2026-05-12 08:45:00
381
原创 从浏览器到互联网的完整数据流
本文系统梳理了Web开发的核心数据流,从浏览器到服务器的完整交互过程。主要内容包括:1)Web应用架构本质是浏览器与服务器的请求-响应交互,解析了静态资源请求和动态数据交互流程;2)本地开发环境搭建与404错误排查方法;3)网络传输基础,包括IP/MAC地址区别和DNS解析过程;4)互联网层级结构与数据传输路径;5)完整访问流程总结。文章强调理解底层原理对学习Web开发的重要性,建议先建立全局观再深入技术细节。
2026-05-11 23:12:05
780
原创 Servlet+JQuery实现数据库数据渲染到前端页面
本文介绍了使用Servlet和JQuery实现从MySQL数据库获取数据并渲染到前端页面的完整流程。技术栈包括Java Servlet、JDBC、MySQL、HTML、JQuery和JSON。核心实现分为四层:1) 数据库连接层(DBConnection.java)建立MySQL连接;2) 工具类(MysqlUtil.java)封装CRUD操作和结果集转JSON功能;3) Servlet层(如ShowClassServlet)处理请求并返回JSON数据;4) 前端通过JQuery AJAX获取数据并渲染表格
2026-05-10 22:39:10
393
原创 JDBC实现数据库增删改查
本文总结了使用JDBC实现MySQL数据库增删改查(CRUD)的核心知识点。主要内容包括:JDBC基础流程(加载驱动、获取连接、执行SQL、关闭连接);四种操作的具体实现方式(增删改用executeUpdate返回影响行数,查询用executeQuery返回ResultSet结果集);针对不同表(student/class/course/relationship)的CRUD工具类示例代码;以及注意事项如MySQL8.0+驱动类名、连接参数设置等。文章通过课堂实战代码展示了标准JDBC操作模式,为数据库编程提
2026-05-10 20:26:18
490
原创 Servlet实现前后端交互
本文介绍了JavaWeb中Servlet实现前后端交互的两种方式:表单同步提交和Ajax异步请求。表单提交通过HTML的<form>标签实现,页面会跳转,适合简单场景;Ajax方式使用JQuery发送异步请求,实现无刷新交互,提升用户体验。文章详细讲解了两种方式的前后端代码实现,包括参数传递、请求处理和响应返回等关键环节,并对比了它们的优缺点。通过具体案例演示了如何接收参数、构造JSON响应数据以及前端渲染过程,为JavaWeb开发提供了实用参考。
2026-05-10 20:18:08
586
原创 Agent 工具封装和调用
文章摘要: LangChain Agent是一种智能系统,通过结合大语言模型、工具集和推理框架,实现自主思考和执行任务的能力。本文详细介绍了Agent工具调用的核心原理和实现方法: 工具封装基础:使用@tool装饰器将Python函数转换为Agent可调用的工具,强调注释规范的重要性 实战案例:演示了乘法计算工具和天气查询工具的实现,后者涉及API调用和城市代码匹配 ReAct框架:介绍如何让大模型自主调用工具完成复杂任务 文章提供了完整代码示例,包括工具封装、测试方法和企业级应用实践(如天气API集成),
2026-05-07 21:41:07
199
原创 LangChain文本嵌入模型
本文详细介绍了如何使用LangChain构建检索增强生成(RAG)系统,包含以下核心内容: 环境准备:安装LangChain、智谱AI、HuggingFace嵌入模型和Chroma向量数据库等依赖包 智谱AI集成:演示GLM-4对话模型和Embedding-3向量模型的使用方法 中文嵌入模型:推荐使用BGE系列模型处理中文文本,提供本地模型加载代码 文档处理:讲解中文文本分块的最佳实践,包括分块大小、重叠比例和中文分隔符设置 向量数据库:展示Chroma的持久化存储和语义搜索功能实现 文章提供了完整的可运行
2026-05-07 11:22:33
629
原创 SQL约束
MySQL数据库约束:保障数据完整性的核心机制 数据库约束是维护数据准确性和一致性的关键工具,主要包括五大核心类型: 主键约束(PRIMARY KEY):确保每行数据的唯一标识,具有非空且唯一特性,推荐使用自增整数类型。 唯一约束(UNIQUE):防止特定列出现重复值,但允许NULL值存在,常用于手机号、邮箱等业务字段。 非空约束(NOT NULL):强制列必须有值,避免数据缺失,适用于姓名、密码等必填字段。 默认约束(DEFAULT):为列提供预设值,当插入数据未指定值时自动填充,常与非空约束配合使用。
2026-05-07 09:41:58
385
原创 数据库:概念结构设计
数据库概念结构设计与E-R图摘要 概念结构设计是数据库设计的核心阶段,通过E-R图(实体-关系图)将业务需求转化为独立于具体数据库管理系统的抽象数据结构。E-R图由三大要素构成:实体(矩形表示)、属性(椭圆形)和联系(菱形),能够清晰描述数据之间的关联。 E-R图包含三种基本联系类型:一对一(1:1)、一对多(1:n)和多对多(m:n)。每种类型都有典型应用场景,如主任与系(1:1)、仓库与商品(1:n)、教师与课程(m:n)。多对多联系必须通过中间表实现,以避免数据冗余。 在教务管理系统案例中,E-R图展
2026-05-07 09:20:50
348
原创 Java基础 set集合
本文总结了Java中Set集合的三大核心实现类:HashSet、LinkedHashSet和TreeSet。HashSet基于哈希表实现,提供最高效的去重操作但不保证顺序;LinkedHashSet通过双向链表维护插入顺序,适合需要保持元素插入顺序的场景;TreeSet基于红黑树实现自动排序,支持自然排序和自定义排序。文章详细分析了各实现的底层原理、性能特点和适用场景,并提供了常见使用示例和注意事项,帮助开发者根据具体需求选择合适的Set实现类。
2026-05-06 17:04:48
530
原创 Java基础 map集合
摘要: Java Map接口以键值对形式存储数据,核心实现包括HashMap(无序哈希表,JDK8优化为数组+链表+红黑树,线程不安全)、TreeMap(基于红黑树的有序Map,支持自然/自定义排序)、Hashtable(线程安全但性能差的老旧实现)和ConcurrentHashMap(高并发优化的线程安全Map)。HashMap通过哈希计算定位元素,具有O(1)查询效率;TreeMap通过红黑树实现O(logn)的有序访问;ConcurrentHashMap采用分段锁提升并发性能。使用时需注意哈希冲突处理
2026-05-06 16:58:58
359
原创 Java基础 List集合
本文总结了Java List集合的核心知识点,重点分析了ArrayList、LinkedList和Vector三种实现类的特点、底层原理及适用场景。ArrayList基于动态数组,查询高效但增删较慢;LinkedList基于双向链表,增删高效但查询较慢;Vector是线程安全的动态数组实现,但性能较差已过时。文章对比了三者的特性差异,提供了常用方法示例和遍历方式选择建议,并推荐在高并发场景下使用Collections.synchronizedList或CopyOnWriteArrayList替代Vector
2026-05-06 16:53:40
265
原创 Java ArrayList
本文系统总结了Java ArrayList的基础操作,包括初始化、添加/获取/修改/删除元素、判断元素存在、清空集合等核心方法。详细介绍了三种遍历方式(普通for循环、增强for循环、迭代器)及适用场景,并强调了索引从0开始、remove方法重载等注意事项。通过课堂代码示例演示了各方法的实际应用,帮助开发者快速掌握ArrayList的基础用法,为后续深入学习集合框架打下基础。
2026-04-30 00:42:46
382
原创 Java 基础(十一)反射
Java反射机制是运行时动态获取和操作类信息的核心技术,通过Class对象可以突破访问限制操作私有成员。文章系统讲解了反射三大核心操作:构造方法(创建实例)、成员变量(读写字段)和成员方法(动态调用),并对比了带Declared与不带Declared的API区别。重点强调暴力反射(setAccessible)的使用场景和性能优化建议,最后列举了反射在框架底层、动态代理等领域的典型应用。掌握反射对理解主流框架原理和实现动态功能至关重要。
2026-04-26 22:28:36
541
原创 Java 基础(十)异常
本文系统梳理了Java异常处理的核心知识点,包括异常体系结构(Error和Exception两大分支)、处理方式(try-catch-finally捕获和throws抛出)以及自定义异常的实现方法。文章详细解析了运行时异常与受检异常的区别,通过代码示例演示了异常捕获流程,并强调了finally块的特殊执行机制。同时提供了自定义异常的实现步骤和最佳实践建议,如优先捕获具体异常、避免忽略异常、使用try-with-resources等,帮助开发者编写更健壮的Java程序。异常处理是保证程序可靠性的关键技能,需要
2026-04-25 22:57:01
332
原创 Java 基础(九) IO流
摘要 Java IO流是程序与外部设备数据传输的核心机制,分为字符流和字节流两大类。字符流(Reader/Writer)专门处理文本数据,支持编码转换和缓冲读写,包括FileReader、BufferedReader等实现类。字节流(InputStream/OutputStream)处理所有数据类型,适合二进制文件操作。文章详细介绍了各类流的层次结构、使用场景和实战代码示例,包括文本文件的读取写入、异常处理及最佳实践,如使用Buffered流提高效率、指定编码避免乱码等。同时对比了节点流和处理流的区别,帮助
2026-04-25 22:53:11
489
原创 Java 基础 (八)抽象类和接口
Java接口是面向对象编程的核心工具,定义了行为规范并实现多态。文章系统梳理了接口的7大特性,包括默认方法、静态方法等新特性,对比了接口与抽象类的本质区别。通过访问修饰符详解封装控制,并以Comparable接口为例演示了通用排序的实现,利用多态特性让Cat和Dog类自定义排序规则。最后通过快速排序工具类展示了接口在实际开发中的应用价值,体现了"定义规范、分离实现"的设计思想。
2026-04-25 22:47:37
703
原创 4月24日 前沿信息
2026年4月24日计算机领域前沿动态速览: 人工智能领域迎来重大突破,OpenAI发布GPT-5.5重夺全球最强模型宝座,中国DeepSeek V4系列模型实现技术跃迁,支持百万token上下文并完全开源。硬件方面,英特尔财报超预期股价暴涨,CPU市场迎来涨价潮。云计算领域,"支持公共云发展"首次写入政府工作报告,国家超算互联网上线DeepSeek V4模型。网络安全形势严峻,AI供应链安全危机全面爆发。科学计算领域,中国发布"千衍"数字宇宙模拟项目,创下宇宙学模拟
2026-04-24 22:00:49
485
原创 Java 基础(七)多态
本文总结了Java面向对象编程的核心知识点,包括包装类比较、值传递机制和多态实战。包装类比较中,Integer直接赋值在-128~127范围内复用常量池对象,new Integer()则创建新对象;值传递机制中,基本类型传递副本不影响原变量,引用类型传递地址副本但修改对象内容会影响原对象。多态基础展示了父类引用指向子类对象时的向上转型和方法重写特性。多态实战部分通过继承结构演示了重载、重写和向上转型的匹配规则,重点分析了父类引用指向子类对象时的调用逻辑。
2026-04-23 23:34:49
531
原创 Agent 记忆管理
本文介绍了LangChain v1.x版本中对话记忆管理的LCEL最佳实践,全面替代已弃用的传统API。主要内容包括:1)环境准备与智谱AI GLM-4模型初始化;2)使用PydanticOutputParser实现结构化JSON输出,结合LCEL管道符实现流式响应;3)四种对话记忆管理方案:全量对话记忆(替代ConversationBufferMemory)、滑动窗口记忆(替代ConversationBufferWindowMemory)、对话摘要记忆(替代ConversationSummaryMemor
2026-04-23 23:23:29
873
原创 Java 基础(六)封装类 Object类
本文总结了Java基础中的关键知识点:1)==和equals的区别,==比较基本类型的值或引用类型的地址,equals默认比较地址但可重写(如String比较内容),重写equals时必须重写hashCode;2)包装类的自动拆装箱机制及Integer的-128~127缓存特性导致的"128陷阱";3)基本数据类型与字符串互转的常用方法。这些基础概念是面试和开发中的常见考点,掌握它们对Java学习至关重要。
2026-04-22 23:38:57
541
原创 Java 基础(五)值传递
Java参数传递机制摘要 核心结论 Java中只有值传递,没有引用传递。对于基本类型传递数据值的副本,引用类型传递对象地址的副本。 基本类型传递 传递数据值的副本,方法内修改不影响原变量。示例中修改形参num=20不会改变外部a=10的值。 引用类型传递 传递对象地址的副本,形参和实参指向同一对象: 修改对象属性:会影响原对象,如示例中通过tt.x=42修改会影响原two对象。 修改引用本身:如让形参指向新对象,不会影响原引用,证明是值传递。 关键区别 值传递:传递副本,修改副本不影响原变量 引用传递:传递
2026-04-19 23:25:49
637
原创 Java 基础(四)String相关
Java final与String核心摘要 final关键字表示不可变:修饰基本类型变量时值不可改,修饰引用类型时地址不可变但内容可变;修饰方法防止重写,修饰类禁止继承。String类具有不可变性,底层JDK1.8前使用char数组,之后优化为byte数组。字符串常量池复用相同内容字符串,字面量赋值优先查池,new创建则堆中新对象。不可变性保障线程安全、哈希缓存和内存节省,但频繁拼接效率低。
2026-04-18 21:54:51
595
原创 Java 基础(三)多线程
本文摘要介绍了Java多线程的核心知识点,包括进程与线程的基础概念、多线程的创建与启动方式、线程调度机制以及线程安全问题。主要内容如下: 进程与线程基础:进程是资源分配单位,线程是CPU调度单位,同一进程的线程共享内存资源但各自拥有独立栈空间。 线程创建:通过继承Thread类并重写run()方法创建线程,必须使用start()而非run()方法启动线程以实现真正的并行执行。 线程调度:CPU采用时间片轮转机制在多个线程间快速切换,宏观上实现"同时"执行的效果。 线程安全问题:以coun
2026-04-18 21:50:25
455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅