- 博客(25)
- 收藏
- 关注
原创 HTTP/HTTPS:从第一次HTTP抓包到理解HTTPS加密原理
这是一个来自Windows 10/11 上的 Microsoft Edge (Chromium) 浏览器,通过 HTTPS 协议访问百度首页的请求。来源: 桌面端直接导航 (偏好: 喜欢 HTML 格式,支持 Brotli/Gzip 压缩,首选简体中文。隐私: 开启了 DNT (请勿追踪)。状态: 携带了 Baidu 特有的 Cookie(BAIDUID),说明之前已经建立过会话或进行过 A/B 测试标记。如果你是在 Fiddler 中看到这段,通常意味着这是一个正常的首页加载请求,除非。
2026-06-17 15:23:45
388
原创 网络层和数据链路层中的常见协议解析
该文章是作者在学习TCP/IP五层协议的学习笔记.重点解释了IP协议和对应的NAT机制.顺带写了以太网帧的初步认识
2026-05-29 20:08:30
237
原创 应用层中的TCP协议原理
虽然看起来主机B收到了两次相同的数据,但实际上真正被处理的还是第一次发送的数据.因为当主机B收到第二次相同的数据时,会发现序列号是已经被处理过的了,直接当作过期数据,返回一个ACK后就不做任何额外处理了.因此在应用层实际收到的还是一个hello,而不是hellohello。通过上面两个机制,便已经具有基本可靠传输的传输的特点.TCP还和UDP有一个很不同的特点,即TCP是有连接的,在网络通信前先尝试连接,如果网络连接不可靠,那么自然连接不上,因此通过连接机制,也能提高可靠传输的能力。
2026-05-25 22:04:15
449
原创 应用层中的DNS实现和UDP协议原理
在前面网络编程基础中,我们简单解释了TCPIP五层协议,并且通过QQ收发消息的示例来展示五层协议中每一层的作用.在此我先简单回顾一下TCPIP五层协议。
2026-05-18 19:14:46
3816
1
原创 javaEE:网络编程基础
本文介绍了网络编程的基础知识,重点对比了TCP和UDP协议的特性及适用场景。TCP协议提供可靠的有连接传输,适合文件传输等对准确性要求高的场景;UDP协议则提供高效的无连接传输,适合实时性要求高的应用。文章详细讲解了Socket套接字API,特别是DatagramSocket和DatagramPacket的使用方法,并通过Java代码示例展示了如何实现一个简单的UDP回显服务器和客户端。服务器端循环接收请求并返回响应,客户端则通过控制台输入与服务器交互,演示了UDP网络编程的基本流程。
2026-05-14 22:23:00
508
原创 TCP/IP五层协议的简单理解
通过“寄快递”和“QQ发消息”的场景模拟,将TCP/IP五层模型中抽象的封装(Encapsulation)和分用(Decapsulation)过程解释得非常直观易懂
2026-05-06 09:55:57
205
原创 javaEE:文件IO
摘要 本文介绍了文件IO操作的基本概念和方法。主要内容包括:1) 文件分类为文本文件和二进制文件,说明其编码差异;2) IO的输入输出概念解析;3) Java中File类的常用API,包括路径获取、文件操作等方法;4) 文件内容操作分为字节流和字符流,重点讲解了InputStream和OutputStream的使用。文章通过代码示例演示了路径获取、文件重命名和移动等操作,帮助理解文件系统的基本操作原理。
2026-04-20 21:05:14
371
原创 javaee:多线程-锁策略和常见JUC
本文介绍了常见的锁策略及其分类标准,包括乐观锁/悲观锁、重量级/轻量级锁、挂起等待/自旋锁等。重点分析了Synchronized的原理,它综合了多种锁特性,并采用锁升级机制(无锁→偏向锁→自旋锁→重量级锁)优化性能。文章还解释了锁消除和锁粗化两种优化技术,以及CAS操作的原理和ABA问题的解决方案。最后简要介绍了JUC中的Semaphore信号量类及其使用场景。全文系统性地梳理了Java并发编程中的核心锁机制和同步工具。
2026-04-16 10:17:07
387
原创 javaEE:多线程,线程池
/定义一个阻塞队列 public MyThreadPoolExecutor(int nThread) {//根据参数n创建n个线程 for(int i = 0;i ++) {try {//如果没有使用到的线程会自动阻塞 } catch(InterruptedException e) {//运行runnable内容 } });
2026-03-08 11:25:16
441
原创 javaEE:多线程,单列模式和生产者消费者模型
单例模式确保类只有一个实例并提供全局访问点,包括饿汉式(立即创建)和懒汉式(延迟创建)。懒汉式需解决线程安全问题,通过双重检查锁定和volatile避免指令重排。阻塞队列支持线程安全的put/take操作,满或空时自动阻塞。手动实现可使用ReentrantLock和Condition管理不同阻塞条件,确保线程安全。
2025-12-11 11:06:34
1125
原创 javaEE:多线程,线程安全
解释了什么是线程安全,怎样写才是一个线程安全的代码.详细解释了什么是synchronized和RenntrantLock锁和其用法.还有死锁
2025-11-26 22:00:09
416
原创 MySQL:数据库约束
查看表结构,发现class_id的key为mul,表示外键约束建立成功(mul代表索引,不代表外键约束)原因是因为我们只删除了外键约束,但是没有删除创建外键约束时的索引,删除索引之后再说。作用:为列内容设置默认值,如果插入时没有指定该列,就使用默认值(可作用多个列)尝试删除主表java01的记录,发现删除失败,因为有记录用引用了java01。此时我们已经成功删除了外键,但查看表结构时,发现key显示的还是mul。查询表内容,发现不指定姓名的变成了无名,而不是默认的null。
2025-10-30 16:24:23
524
原创 学习笔记:继承
简单说就是让子类"继承"父类的属性和方法.就像现实里儿子继承父亲的财产和家族特征一样.现在我定义一个学生类会发现他们都有共同属性,姓名,年龄,班级.不过,我现在我告诉你小明有个特点是会唱,然后要重新定义他们,这时候最方便的方法便是使用继承.直接新创建一个类,然后使用extends继承即可这样的子类会继承到父类的所有属性和方法,并且还特有一个chan方法当我们希望在子类中访问父类成员时,可以使用super关键字来进行访问继承时会遇到的奇怪问题编写下段代码会发现编译不通过原因是在执行子类时,父类未初
2025-07-07 17:06:47
960
原创 只用C语言基础语法就能完成扫雷?
开始我先声明一下完成扫雷所需要的C语言基础1,数据类型2,分支循环语句3,函数的使用4,......没有了,就这么简单只需要了解这3点,我们就能做出最基本的扫雷程序了不过毕竟是最基本的扫雷嘛,所以这个扫雷玩起来还是很吃力的。
2025-04-25 11:19:09
1023
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅