- 博客(20)
- 收藏
- 关注
原创 TCP协议
TCP协议是一种面向连接的可靠传输层协议,通过三次握手建立连接、四次挥手释放连接。其核心机制包括:1. 可靠性保障:通过确认应答、超时重传、快速重传等机制确保数据可靠传输;2. 流量控制:利用滑动窗口动态调整发送速率,匹配接收方处理能力;3. 拥塞控制:采用慢启动、拥塞避免、快速恢复等算法防止网络过载。TCP首部包含20-60字节的控制信息,通过端口号、序列号、确认号等字段实现有序传输。该协议通过连接管理、数据分段、差错控制等机制,在保证可靠性的同时提高传输效率。
2025-08-22 15:56:00
640
原创 计算机网络--HTTP协议
HTTP协议是超文本传输协议,用于客户端与服务器间的数据传输。其工作流程包括建立TCP连接、发送请求报文、服务器处理并返回响应报文。HTTP使用URL定位资源,报文分为请求报文(含请求行、请求头、请求体)和响应报文(含状态行、响应头、响应体)。常见请求方法有GET(获取资源)和POST(提交数据)。HTTP存在明文传输的安全问题,HTTPS通过SSL/TLS加密解决,采用非对称加密传输对称密钥,确保通信安全。状态码反映请求状态(如200成功、404未找到)。HTTP与HTTPS主要区别在于加密、端口号(80
2025-08-20 23:38:27
2887
5
原创 计算机网络模型
本文系统介绍了计算机网络的基本概念和TCP/IP四层模型。首先阐述了互联网的全球性特点、统一协议标准(TCP/IP)以及硬件基础设施(如路由器、光纤、数据中心)。重点解析了TCP/IP四层模型:应用层(HTTP/DNS等协议)、传输层(TCP/UDP)、网络层(IP寻址和路由)以及网络接口层(MAC地址通信)。通过分层模型实现了复杂网络功能的模块化,使各层专注于特定任务,确保了网络通信的高效性和可靠性。文章还特别强调了中国的网络基础设施,包括骨干网架构、国际光缆和网络安全设施等实际应用场景。
2025-08-20 22:46:46
930
原创 JVM垃圾收集器
本文系统解析JVM垃圾回收机制:1.对象存活判断:对比引用计数法(循环引用缺陷)与可达性分析法(JVM主流),详解强、软、弱、虚四种引用的特性;2.垃圾收集算法:剖析标记-清除(碎片化)、标记-复制(空间折半)、标记-整理(效率成本高)的原理与优劣,阐述分代收集理论的应用;3.垃圾收集器:对比Serial/ParNew/Parallel/CMS/G1等特性,重点剖析G1的Region分区设计、混合回收模式及可预测停顿能力。全文通过技术原理与生活化类比相结合,全面梳理JVM垃圾回收核心机制。
2025-08-19 22:38:17
873
原创 Java内存模型(JMM)
Java内存模型(JMM)是Java程序运行的基础,它将内存划分为线程共享和私有两部分。线程私有区域包括程序计数器(记录指令位置)、虚拟机栈(存储方法调用栈帧)和本地方法栈;共享区域包含堆(存储对象实例)和元空间(JDK1.8后取代方法区)。程序计数器是唯一不会出现内存溢出的区域,而虚拟机栈可能出现栈溢出或内存不足错误。堆是垃圾回收的主要区域,采用分代设计(新生代8:1:1比例)。字符串常量池管理字符串对象,使用intern()方法可优化内存使用。理解这些内存区域特性对诊断内存问题至关重要。
2025-08-19 00:10:30
1016
原创 JAVA类加载机制
本文系统介绍了JVM类加载机制和对象创建过程。类加载采用动态加载方式,包含加载、验证、准备、解析和初始化五个阶段,通过双亲委派模型实现层次化加载。主动引用(如new指令、反射调用等)会触发类初始化,而被动引用(如访问父类静态字段)则不会。对象创建过程包括类加载检查、内存分配、初始化零值、设置对象头和执行构造方法五个步骤,其中内存分配方式取决于GC算法。类加载器分为启动类、扩展类和应用程序类三种,通过双亲委派机制确保基础类的统一性。
2025-08-18 22:21:08
977
原创 JVM基础概念
Java的跨平台特性主要依靠JVM实现。不同平台的JVM将统一的字节码文件翻译为对应平台的机器码,实现"一次编译,到处运行"。JVM包含类加载器、运行时数据区、执行引擎等组件,通过解释执行字节码指令,管理内存分配和垃圾回收。Java程序执行流程包括:源代码编译为字节码→类加载→创建对象→执行指令→方法调用栈帧管理等。JVM作为中间层隔离了硬件差异,使Java程序能跨平台运行。
2025-08-14 19:00:34
779
原创 Reflection反射(万物皆对象)
Java反射机制是程序在运行时动态分析和操作类信息的能力,通过Class、Constructor、Field和Method四个核心类实现。它支持获取类结构、创建对象、访问字段和调用方法,广泛应用于框架开发(如Spring、Hibernate)和动态代理。虽然功能强大,但反射存在性能开销和安全隐患,使用时应权衡利弊,避免过度依赖。
2025-08-14 00:02:30
756
原创 ThreadLocal
ThreadLocal是Java中的线程局部变量,用于实现线程间数据隔离与线程内数据共享。它以ThreadLocal对象为key,将数据存储在各自线程的ThreadLocalMap中,通过弱引用机制避免内存泄漏。核心特点包括:线程隔离性、线程内共享性、支持多变量存储。常用方法有set()、get()和remove(),其中remove()方法对防止内存泄漏至关重要,特别是在线程池环境中。通过InheritableThreadLocal可实现父子线程数据传递。
2025-08-12 23:16:12
712
原创 线程池的详细讲解
线程池通过池化技术管理线程生命周期,解决频繁创建/销毁线程的性能损耗和资源分配不确定性问题。其核心是线程复用和并发控制,维护固定数量线程处理任务,实现任务提交与执行的解耦。Java提供ThreadPoolExecutor作为标准实现,包含核心线程数、最大线程数、任务队列和拒绝策略等关键参数,执行流程遵循"核心线程→工作队列→非核心线程→拒绝策略"的优先级。线程池具有RUNNING、SHUTDOWN、STOP、TIDYING和TERMINATED五种状态,通过状态机管理生命周期。相比直接创建线程,线程池能降低
2025-08-11 22:45:58
873
原创 ReentrantLock可重入锁
摘要:ReentrantLock是Java提供的可重入锁实现,相比synchronized具有更丰富的功能,包括支持公平/非公平锁、可中断获取、超时机制和多条件变量等。其核心方法包含lock()、tryLock()、unlock()等操作,通过Condition可实现精细的线程等待/唤醒控制。内部采用Sync、NonfairSync和FairSync三个类实现不同的锁策略。与synchronized相比,ReentrantLock提供了更灵活的锁控制,但需要手动管理锁的获取和释放。适用于需要高级同步特性的复
2025-08-07 22:38:01
968
原创 synchronized关键字
摘要: synchronized是Java中实现线程同步的关键字,通过加锁机制保证代码块的原子性。它有三种使用方式:1)修饰代码块,需指定锁对象;2)修饰实例方法,默认使用this对象作为锁;3)修饰静态方法,使用类的Class对象作为锁。同一时刻只有一个线程能持有锁并执行被锁代码,从而确保线程安全。示例展示了通过共享锁对象实现计数器线程安全操作,以及静态方法同步时使用类对象作为锁的用法。
2025-08-05 22:30:51
177
原创 线程的常用方法
本文介绍了Java多线程编程中的几个关键方法:1)join()方法实现线程"插队",控制执行顺序,有阻塞主线程、释放锁等特点;2)interrupt()方法通过中断标志实现线程中断,需配合中断状态检测;3)yield()方法让出CPU执行权,但不保证切换;4)守护线程(setDaemon(true))在用户线程结束后自动终止。文章对比了这些方法与sleep()、wait()的区别,包括锁释放、唤醒条件等特性,并提供了代码示例说明各方法的典型应用场景和使用注意事项。
2025-08-05 19:11:35
575
原创 初学线程--基础
本文系统介绍了操作系统中的进程与线程概念及其在Java中的实现。主要内容包括:1)进程是程序的一次执行过程,线程是进程内的执行单元;2)Java提供Thread类、Runnable和Callable接口三种创建线程的方式;3)线程池技术能提高线程复用效率;4)线程控制方法如命名、休眠和优先级设置;5)现代并发技术如协程和Java19虚拟线程。文章通过代码示例详细演示了多线程编程实现,并对比了并发与并行的区别,为理解操作系统任务调度和Java多线程编程提供了全面指导。
2025-08-04 22:57:51
789
原创 Spring Bean的生命周期
本文详细介绍了 Spring 框架中 Bean 的生命周期全过程,包括实例化、属性赋值、初始化、使用和销毁五个核心阶段。主要内容包括: 三种实例化方式:无参构造器、静态工厂方法和实例工厂方法 三种依赖注入方式:构造器注入、setter注入和注解注入 初始化阶段的完整流程:BeanPostProcessor前置处理、InitializingBean接口回调、自定义init方法等 三种销毁方式:@PreDestroy注解、DisposableBean接口和自定义destroy-method
2025-07-31 22:55:23
1052
原创 MyBatis工作原理
MyBatis是一个轻量级的数据持久化框架,通过XML/注解配置简化JDBC操作。核心组件包括:1)配置加载(mybatis-config.xml)定义数据库连接;2)映射器(Mapper)接口与XML文件绑定SQL语句;3)SqlSessionFactory构建会话工厂;4)SqlSession执行SQL并处理结果映射。其工作流程为:解析配置→创建会话→执行映射SQL→结果转换。支持动态SQL和两级缓存,既保持SQL灵活性又减少样板代码,通过与Spring集成实现线程安全的事务管理。相比全自动ORM框架,
2025-07-25 22:37:19
1018
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人