自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 通信编程v2.0

使用 InputStream 和 OutputStream 进行数据读写。线程管理问题:每来一个客户端就创建新线程,没有线程池管理,资源消耗大。资源泄漏风险:客户端和服务端都存在未正确关闭资源的风险。自定义协议:先读取消息长度,再读取对应长度的消息内容。通过 accept() 方法阻塞等待客户端连接。缺乏异常处理:缺少完善的错误处理和资源释放机制。没有连接管理:服务端没有管理客户端连接的机制。协议简单:只处理字符串,没有数据格式规范。阻塞式IO:使用传统阻塞IO,性能有限。使用 Socket 连接服务器。

2025-08-15 09:15:14 222

原创 通信编程V1.0

getInputStream() 和 getOutputStream(): 获取Socket的输入输出流用于数据传输。读取数据时没有确保完整读取,in.read(bytes) 可能不会一次性读取完整数据。ServerSocket: 服务器端套接字,用于监听指定端口的连接请求。提取公共代码:将重复的发送逻辑提取为公共方法或工具类。完善数据读取:使用循环确保完整读取指定长度的数据。String.getBytes(): 将字符串转换为字节数组。accept(): 服务器端阻塞方法,等待并接受客户端连接。

2025-08-14 15:25:51 1020

原创 JAVA面向对象

第二步:创建给属性赋值的方法 设置为public public void set属性名(数据类型 参数名){ 属性名=参数名;封装第一步: 需要封装的属性用private修饰,使用对象变量名在类之外不能调用属性。class 只能使用public和缺省不写的修饰。返回值:方法结构的一部分,看作方法的输出端。禁止使用对象变量名调用属性。

2025-08-14 15:14:00 365

原创 基于Java awt和Swing的坦克游戏项目

该坦克游戏项目用了多线程进行画面更新和敌人生成,并涉及了地图绘制、碰撞检测、键盘控制等常见游戏开发功能。

2025-05-19 20:38:53 1152

原创 线程安全问题

因为代码中tk.tick--不是原子操作。为了避免此类问题发生,我们需要给线程加锁,来保证代码的原子操作。这是因为在另一个类中我们声明了两个变量u1和u2,因为是两种方法所以会导致代码出现错误。通过使用一种方法,且把synchroized放在输出外,可同步代码块,并且保证线程安全。我们可以使用同步代码块:synchronized(监听器){需要原子操作的代码}但在上述代码中,如果将tk改为this或者其他类,还是不能保证线程安全。在这个包下定义了100张票,并实现了此方法。

2025-05-19 12:37:48 201

原创 关于新版本idea中lombok注解失效的问题

但是在我dept类上加了@GetMapping(value = "/hello", produces = "application/json")注解仍不起作用,这让我想到了之前在lombok没有解决的问题,开始思考是不是lombok出现的问题。在我刚开始学的时候,报错实际参数与形式参数长度不同,看了许久并没有想太多,直接加了getter和setter方法。在我后来学习了springboot相关内容之后,想联系前端进行数据间的传递,这时候就出现新的问题了。困扰了我快一两个月的问题仅仅也就是一个版本号。

2025-04-09 01:16:37 358 2

原创 线程生命周期基础知识 对并发游戏的改进

我们通过while(true)来实现多个小球的运动,所以我们暂停时只需要将ture的值修改为false,即可实现所有小球的停止。堵塞:某些运行中的线程变成阻塞状态,比如使用sleep(),wait()之后线程就处于阻塞状态,需要再次等待CPU分配资源进入运行状态。线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁先开始执行。运行:当就绪的线程被调度并获得了CPU资源时,便进入了运行状态,run方法定义了线程的操作和功能。在java虚拟机中线程的生命周期,包括新建,运行,堵塞,就绪,销毁五个阶段。

2025-03-06 18:56:26 300

原创 并发编程入门

其次,详细介绍了单线程程序和多任务之间的区别,并提出了使用GUI界面和鼠标监听器来设计游戏功能的建议。接着,讲解了如何通过构造方法初始化属性,以及改变位置让小球自动运动,并注意循环结束和异常处理的问题。然后,讨论了线程的概念和设计,包括使用继承Thread类并重写run方法,以及如何在动作发生时启动新线程。最后,提出了两个任务:一是编写一篇博客或教程解释几个概念;首先,由于要做出这个游戏界面,所以我先编辑了一个窗口,用于存放。上面这段代码主要是制作了游戏的内容,同时消除了小球的路线轨迹,使整体更加的美观。

2025-03-06 01:50:09 141

原创 可视化文件系统

【代码】可视化文件系统。

2024-11-13 20:21:22 119

原创 蓝桥杯刷题

通过取出字符 并且设定这个字符在charArr中不存在 循环判断charArr中所有已存在的字符 与当前str中取出的这个字符是否有相同的,如果有就结束内循环。在最开始编写是 我的思路是只是用数组和循环解决 创建一个计数变量 通过遍历字符串中的每个字符 用charArr记录存储了几个元素。经过反复观察之后发现 在检测到重复字符时,应该立即输出 "NO" 并结束程序,而不是继续检查剩余的字符。实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。但测试总是过三错一 不知道什么原因。

2024-10-10 09:05:32 427 2

原创 数组练习题

数组中的最大子段和,给定一个整数数组,找到一个具有最大和的连续不重复子数组,结构: 一段连续的内存空间 ,可以存储多个相同类型的元素 ,数组创建好之后长度。遍历: 从第一个元素开始,依次访问数组中的每个元素,直到最后一个元素。:创建的数组已经分配了内存空间,但是还没存储元素 ,默认值一般是。:数组元素求和:计算一个整数数组中所有元素的和。:数组中第二大的数:找出数组中第二大的数。: 数组中重复的数字:在一个长度为。数组中所需要存储的元素的类型。数组中所需要存储的元素的类型。最后一个元素的下标就是数组。

2024-10-09 21:31:12 1174

原创 美颜相机v1.0

美颜相机开发需求:实现图片的颜色修改实现给图片添加10种滤镜效果实现原图与生成效果的对比实现操作的撤回实现图片的保存为图片文件修改图片的宽高旋转图片的方向。

2024-08-01 18:56:39 1025

原创 按钮的动作监听器与实现点击按钮功能

【代码】按钮的动作监听器与实现点击按钮功能。

2024-07-21 22:14:19 1149

原创 JAVA 界面开发

JFrame 窗体类 JButton 按钮类 JLable 标签类 JTextField 文本输入框类。Dimension 尺寸类 Color 颜色类。使用这些包中的类需要现在class前 导入这个类所在的包路径。javax.swing : 升级的界面开发包。主要使用可视化组件类 和 图片类。java.awt:早期开发包。

2024-07-19 15:43:58 1355

原创 JAVA面向对象之类与对象

类就是上述定义的复合型数据类型.语法:publlc class 类名{}内容: 属性 和 方法 ,其中属性:这个类别都具有的数据信息 通常使用变量表示格式:数据类型 数据变量名:int age;方法:这个类别都具有的行为\功能的逻辑 通常用一段代码结构表示格式:public void 方法名( ){ }int age;score+=20;System.out.println(name+"通过一门考试,学分增加20分,现在学分为:"+score);

2024-07-18 10:39:13 297 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除