<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZJH__GO的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZJH__GO</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZJH__GO]]></copyright><item><title><![CDATA[网络编程v4pro--实现聊天室文件传输功能]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163612060</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163612060</guid><author>ZJH__GO</author><pubDate>Sun, 09 Aug 2026 15:23:11 +0800</pubDate><description><![CDATA[聊天室v4是一个基于Java Socket的多人聊天系统，包含服务端，命令行客户端，GUI客户端和用户信息类。原版本功能只支持私聊和群聊文本和表情两种信息，但不支持发送文件。本pro版新增文件信息的收发功能。]]></description><category></category></item><item><title><![CDATA[通信开发--接收浏览器网络连接]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163559488</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163559488</guid><author>ZJH__GO</author><pubDate>Fri, 07 Aug 2026 11:42:38 +0800</pubDate><description><![CDATA[监听9999端口，接收浏览器请求，返回HTML静态文件或JSON数据。]]></description><category></category></item><item><title><![CDATA[网络编程v5--多人小球游戏基础]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163417291</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163417291</guid><author>ZJH__GO</author><pubDate>Wed, 05 Aug 2026 16:08:13 +0800</pubDate><description><![CDATA[2.通过监听键盘的上下左右，转换成信息代码，并且用输出流（本质上是客户端套接字的输出流，在客户端类中有赋值）发送,服务端实时接收，用switch分支操控小球的移动方法（up，down等）2.监听函数：和之前版本不同的是，监听到新连接的时候，打包成ClientDO打包类新对象，同时在ClientDO类的构造方法中创建新小球对象，并将小球对象添加到小球数组中。1.总体上来说，这个版本的客户端类主要功能是绘制，一方面绘制客户端游戏界面，另一方面绘制界面中的小球。]]></description><category></category></item><item><title><![CDATA[网络编程v4--群聊和私聊的实现]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163281574</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163281574</guid><author>ZJH__GO</author><pubDate>Wed, 29 Jul 2026 14:52:55 +0800</pubDate><description><![CDATA[v4版本进行了改进，将聊天方式细分为私聊和群聊，私聊情况下仅会话双方可见信息（这里以@用户 信息的信息作为私聊公式），所以以@作为区分聊天方式的主要特征，带有@的信息要进行解析并私发。1.先通过split函数，将receive函数返回的语句进行拆分，私聊分成三个部分（特征数字+好友名称+信息内容），群聊部分则分成两个部分（特征数字+信息）2.私聊模式下，先发送特征数字1，接着，由于需要规定用户名长度和消息长度，先获取用户名字符串部分和消息字符串部分。4.群聊模式下，先发送特征数字2，接着读取消息内容即可。]]></description><category></category></item><item><title><![CDATA[网络编程v3--聊天界面初步开发]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163218275</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163218275</guid><author>ZJH__GO</author><pubDate>Sun, 26 Jul 2026 17:42:03 +0800</pubDate><description><![CDATA[v2版本实现了多用户端聊天的功能，但是仍然依赖控制台输入操作，这个版本更新了界面版的聊天模式，使聊天更加真实方便，同时，将用户和其用户名绑定成ClientUSer类，进一步完善了客户端聊天体验，实现“群聊”既视感。]]></description><category></category></item><item><title><![CDATA[网络编程v2--多客户端互通]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163163826</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163163826</guid><author>ZJH__GO</author><pubDate>Fri, 24 Jul 2026 17:06:52 +0800</pubDate><description><![CDATA[由于一代版本仅支持客户端和服务端互通，暂时缺少客户端之间的沟通，所以在第二代版本中进行更新，二代版本中使用多实例实现多个客户端，并且支持某一客户端发的信息能被其他客户端接收，同时也能被服务端接收，下面做代码解释。6.函数5（主函数）：包含初始化，在死循环中监听客户端发起的连接请求，并将新连接进的客户端加入sockets数组中。3.函数2（监听链接函数）：返回值为向特定接口发起连接请求的客户端套接字，可用于获取该客户端的输入输出流。2.函数二（收信息函数）：通过输入流的read函数实现。]]></description><category></category></item><item><title><![CDATA[初识网络编程--用户端和服务端传递信息]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163108630</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163108630</guid><author>ZJH__GO</author><pubDate>Thu, 23 Jul 2026 14:28:06 +0800</pubDate><description><![CDATA[2.创建服务端的普通套接字，用serversocket.accept()返回一条代表和某一客户端的连接通道的socket。1.套接字对象创建格式（最常用）：Socket socket=new Socket（“IP地址”，端口号）4. 根据读到的长度，创建对应大小的字节数组 byte[] buf = new byte[len];3.需要注意的是，在读取对方信息和发送信息的时候，均需要提前约定字数协议，目的是防止TCP粘包。（这里先创建对象，但不实例化，防止端口异常，用trycatch包围实例化部分）]]></description><category></category></item><item><title><![CDATA[计算机网络核心技术笔记：IP与HTTP基础]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/163080209</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/163080209</guid><author>ZJH__GO</author><pubDate>Tue, 21 Jul 2026 16:04:19 +0800</pubDate><description><![CDATA[计算机网络的核心就是不同设备之间互相传数据。所有上网操作（刷网页、发消息、传文件）都依靠网络协议实现。IP协议（找到设备）、HTTP协议（传输网页数据）。IP协议：网络层协议，核心作用是设备寻址、规划传输路径，无连接、不可靠HTTP协议：应用层协议，核心作用是网页数据交互，无状态、明文传输层级关系：IP管“找对设备”，TCP管“稳定传输”，HTTP管“传对数据”正式环境优先使用HTTPS，保障数据传输安全。]]></description><category></category></item><item><title><![CDATA[java项目-流水线线程池]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/161344360</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/161344360</guid><author>ZJH__GO</author><pubDate>Sat, 23 May 2026 17:19:09 +0800</pubDate><description><![CDATA[实现生产者生成任务，线程池A接受并且处理任务，接着传递给B，B处理过后给C，最终实现流水线处理效果。项目构成：一个主线程类Main，三个任务类TaskABC，一个任务处理底层逻辑类Task。核心在于任务在线程池BC中的传递，通过execute方法实现。这个类中定义了三个任务流水线的工序。任务处理线程+监听线程。]]></description><category></category></item><item><title><![CDATA[java--飞机大战游戏]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/159828912</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/159828912</guid><author>ZJH__GO</author><pubDate>Sat, 04 Apr 2026 16:37:57 +0800</pubDate><description><![CDATA[目前版本的飞机大战游戏由五个类构成，分别是：GameUI类（主界面窗体类），Fighter类（敌我飞机类），GameListener类（键盘监听类）， MainThread类（主线程类），Bullet类（子弹类）实现键盘监听器,用direction方向指示飞机走向,键盘按下时给direction相应的值,松开时direction重置为0。此类主要用于引入飞机大战中的形象,以及战机的生成,移动,攻击,被攻击判定,死亡判定等。[1]:创建己方战机对象，敌方战机数组，子弹数组，定义变量记录击杀数。]]></description><category></category></item><item><title><![CDATA[java--多线程综合以及实际应用]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/159083904</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/159083904</guid><author>ZJH__GO</author><pubDate>Sat, 28 Mar 2026 12:52:44 +0800</pubDate><description><![CDATA[当多个线程访问一个对象时，如果不用考虑它们的执行时序，也不需要额外的同步，都能得到正确的结果，那么这个对象就是线程安全的。2.]]></description><category></category></item><item><title><![CDATA[Lambda表达式]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/159578677</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/159578677</guid><author>ZJH__GO</author><pubDate>Sat, 28 Mar 2026 12:34:42 +0800</pubDate><description><![CDATA[(参数列表)->{ 方法体 }{}return。]]></description><category></category></item><item><title><![CDATA[java--线程安全问题]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157763803</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157763803</guid><author>ZJH__GO</author><pubDate>Thu, 05 Feb 2026 10:32:46 +0800</pubDate><description><![CDATA[虽然在单线程下这不会有问题，但在多线程环境下，这种重排可能导致一个线程看到的操作顺序与代码编写的顺序不一致，从而引发错误。根据Java内存模型（JMM），每个线程都有自己的工作内存（类似于CPU缓存），保存了主内存中共享变量的副本。一个线程对变量的修改可能只更新到了自己的工作内存中，而没有及时刷新回主内存，导致其他线程无法看到最新的值。概念：Java线程安全问题，本质上是在多线程环境下，由于线程调度的不确定性，导致程序的执行结果与预期不符。// 具备可见性，当一个线程修改之后，另一个线程可以立马更新。]]></description><category></category></item><item><title><![CDATA[java项目--智能无人机平台v4]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157543272</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157543272</guid><author>ZJH__GO</author><pubDate>Fri, 30 Jan 2026 10:48:09 +0800</pubDate><description><![CDATA[2.项目功能：新增任务类和任务处理线程类，通过鼠标监听器实现放置任务，并且无人机根据任务方位移动，直至完成任务（抵达并短暂停靠）1.通过传入的无人机数组和任务数组，遍历任务数组和无人机数组，通过比对得到离特定任务最近的无人机，并分配执行任务。isFoundedTask方法同理isFounded方法，取像素点判断是否为黑色，对任务进行扣血，状态改变。在CarryoutTask中，通过以无人机为原点建系，通过斜率调整无人机移动方向。1.项目结构：基本同于v3和v3p。【1】Task任务类。]]></description><category></category></item><item><title><![CDATA[java项目--智能无人机平台v3pro]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157439765</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157439765</guid><author>ZJH__GO</author><pubDate>Tue, 27 Jan 2026 21:08:24 +0800</pubDate><description><![CDATA[【1】更新了isFound函数，新增返回值（返回值类型为Intruder）【2】在Drone类中添加goal变量，setgoal方法。项目介绍：再版本三的基础上，新增锁敌功能和攻击功能。]]></description><category></category></item><item><title><![CDATA[java项目--智能无人机（Drone）平台v3]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157426470</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157426470</guid><author>ZJH__GO</author><pubDate>Tue, 27 Jan 2026 10:16:58 +0800</pubDate><description><![CDATA[3.项目思路：由于本质上无人机和入侵者的示意图都是由颜色组成的，如果两者在缓冲图像上相遇，存在覆盖，由于入侵者主体为黑色，我们可以获取无人机雷达范围内的像素点，取出其颜色，判断是否为极深的颜色（结合红绿蓝三色之和判断）2.项目结构：在无人机类（Drone）中，加入寻找方法isFound，并且在线程类中绘制完无人机和入侵者之后，开始检测。【1】在Drone类定义isFound方法，在无人机x，y坐标基础上，在雷达扫描范围内遍历，取出像素点，并判断颜色。]]></description><category></category></item><item><title><![CDATA[java项目--智能无人机（Drone）平台v2]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157354981</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157354981</guid><author>ZJH__GO</author><pubDate>Sun, 25 Jan 2026 10:39:02 +0800</pubDate><description><![CDATA[【2】创建无人机数组和入侵者数组，用于存储生产的无人机和入侵者，并且将该数组赋值给DroneThread类和DroneListener类中的数组中，实现信息共享。在主界面添加红线，代表无人机的活动范围以及防御范围，无人机的生成只能在红线围成的矩形内部，入侵者只能在矩形围成的红线外生成。主要实现通过获取按钮上的文本，实现无人机和入侵者新对象的初始化，并将新对象添加到对应数组。将无人机和入侵者分别定义成一个类，在类内实现绘制和移动的两个方法；【2】遍历无人机和入侵者数组，取出对象，调用绘制和移动方法。]]></description><category></category></item><item><title><![CDATA[java数据结构学习--图]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157331628</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157331628</guid><author>ZJH__GO</author><pubDate>Sat, 24 Jan 2026 22:16:11 +0800</pubDate><description><![CDATA[2.通过cityname，采用get函数获取对应的List，并创建Edge对象并赋值存入List；组成，非常适合用来模拟现实世界中的网络关系，比如地图上的城市与道路、社交网络中的好友关系等。1.项目介绍：利用哈希表制造一张城市图，显示每个城市周围可抵达的城市（以及票价）K表示Key（键），V表示Value（值），图的get函数采用键值对查找。2.项目结构：由两个类构成，分别是Edge类和MyCityGraph类。参数表中输入出发地（from），目的地（to），票价（w）【1】表的声明和初始化（哈希表）]]></description><category></category></item><item><title><![CDATA[java项目--智能无人机（Drone）平台v1]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157215614</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157215614</guid><author>ZJH__GO</author><pubDate>Wed, 21 Jan 2026 16:34:03 +0800</pubDate><description><![CDATA[4.在方法体中，创建线程类实例对象，并将本类的画笔对象传递到DroneThread类（DroneThread类中在构造方法的参数表中传入画笔对象，并且进行赋值）项目v1功能简介：实现运行程序后，窗体出现显示有多个无人机以及雷达范围示意图的不断移动的无人机，抵达边界自动折返。[3]获取缓冲图像上的画笔，用白色，遮盖上一轮循环的图像，后续再重绘，实现“位移”效果。[7]改变x，y，x1，y1坐标（如果多个无人机，更改多个），同时设置边界速度取反。2.定义构造方法，创建画笔对象，并将画笔变量加入到参数表中。]]></description><category></category></item><item><title><![CDATA[java--线程的定义以及实现]]></title><link>https://blog.youkuaiyun.com/ZJH__GO/article/details/157215757</link><guid>https://blog.youkuaiyun.com/ZJH__GO/article/details/157215757</guid><author>ZJH__GO</author><pubDate>Wed, 21 Jan 2026 15:38:10 +0800</pubDate><description><![CDATA[线程：一个进程的组成部分，任何一个进程至少由一个线程组成，同时线程也是CPU分配执行任务的最小单元。3.启动线程：创建对象，调用start方法启动（调用start方法后，自动调用run方法）【2】实现接口Runnable(implements)多线程的优势：进程使用多线程的优势，在于可以共享数据。(JVM会自动调用run方法)【3】实现接口Callable（这里不做介绍）1.新建一个类，实现Runnable接口。1.新建一个类，继承Thread类。将任务对象作为参数传递给。创建上述类的实例对象。]]></description><category></category></item></channel></rss>