自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java反射:class(入门)

本文介绍了Java反射机制的概念与基本用法。反射允许程序在运行时动态获取类的信息并操作对象,包括获取类属性、调用方法和修改字段值等。文章通过Student类示例展示了反射的核心操作步骤:1)获取Class对象的三种方式;2)获取构造方法创建实例;3)访问私有字段;4)调用方法。特别演示了数组类型的反射处理,包括判断数组类型、获取数组元素和操作数组内容。代码示例展示了如何通过反射动态操作对象,体现了Java反射机制的灵活性和强大功能。

2025-10-26 22:41:34 165

原创 了解一下(自由)线程池

线程池是一种基于池化思想的线程管理工具,通过预先创建线程并重复利用来降低资源消耗和提高响应速度。其核心参数包括核心线程数、最大线程数、工作队列和拒绝策略等。线程池的工作流程遵循"先核心线程→工作队列→临时线程→拒绝策略"的决策机制。Java提供了多种线程池类型,但需注意无界队列可能导致OOM风险,建议通过ThreadPoolExecutor手动创建。自定义线程池可实现动态调整,但需注意线程安全,通过同步机制保证任务可靠执行。合理使用线程池能有效提升系统性能和资源管理能力。

2025-10-13 16:42:32 805

原创 揭开并解决线程安全问题

本文讨论了多线程环境下的线程安全问题及解决方案。主要内容包括:1) 线程安全的基本概念,如线程抢占式执行、共享变量修改、非原子性操作和内存可见性问题;2) 通过银行取款案例演示线程安全问题,两个线程同时操作同一账户导致数据不一致;3) 解决方案是使用synchronized关键字实现同步,确保代码块原子性执行;4) 介绍了两种同步方法:同步代码块和同步方法,强调了监视器对象一致性的重要性;5) 指出线程实现可通过继承Thread类或实现Runnable接口。

2025-09-21 11:38:29 880

原创 制作一个线程小游戏

本文介绍了基于Java多线程的小球碰撞游戏实现。游戏通过ThreadUI类创建主窗体,使用ThreadListener类处理鼠标和键盘事件,ThreadBall类实现游戏主循环,Ball类管理小球属性和碰撞逻辑,MRect类控制玩家移动。主要功能包括:1)多线程控制多个小球的运动;2)边界检测和碰撞反弹;3)鼠标左键添加小球,右键暂停;4)键盘控制玩家移动(A/D键)和游戏开始(空格键);5)双缓冲技术避免闪屏;6)背景图片循环显示。游戏通过线程池管理小球对象,实现了高效的碰撞检测和流畅的动画效果。

2025-07-26 13:28:25 440

原创 进程线程,并发并行的基本概念以及线程的初步使用

我们看到需要判断 threadStatus是否位0 才能调用start0()这个本地方法 不等于0直接就会抛出异常 . start0()方法 就是本地方法 用来真正的创建并启动线程的方法. start()方法在第一次调用完start()方法后threadStatus 的值会发生改变不等于0了,致使下一次调用时start()方法直接就抛出异常。创建一个ThreadBall类,这是一个自定义线程类,首先将画笔,坐标引入,再调用run()方法,通过sleep()方法控制小球运动的速度,设置黑球运动。

2025-07-21 17:14:01 519

原创 文件查找以及创建新文件

本文介绍了基于Java Swing的文件浏览器实现,主要包含以下功能:1)通过ClickListener类实现文件/文件夹的新建、打开、删除、重命名等操作;2)通过OpenFileListener类实现文件双击打开功能;3)自定义MyFileLabel类扩展JLabel以支持文件路径存储;4)FileBrowUI类构建GUI界面,包含路径导航、文件搜索和文件列表显示功能。系统采用事件监听机制,支持鼠标左键双击打开文件/文件夹,右键弹出操作菜单,实现了基本的文件管理功能。代码展示了如何通过Java Swing

2025-07-12 15:17:12 426

原创 小白都可以看懂的个人文件管理系统

当与更新信息匹配时,将名字,密码,文件路径进行更新;FileSystemUI类表示用户的信息界面,写有一个initUI方法,将用户以及监听器传入,在界面中,首先创建了一个JFrame框架,设置其大小,布局,再设置面板,一个信息面板(infoPanel),一个文件面板(filePanel)(本文文件面板还未使用),将信息面板初始化之后,填充数据到每个JTextField文本框中,设置两个按钮用于更新信息和退出,同时将按钮添加到监听器中,将用户个人信息也传入进来,最后将两个文件面板初始化;

2025-07-03 14:21:35 475

原创 文件管理系统

在之前写的用户管理系统中,我们可以把用户信息改为文件管理系统,修改文件是否加密等信息,今天先完成文件登录处理,要用到之前未用到的面板,今天重点说一下容器。面板容器:JPanel可以在窗体内自己形成一个区域,在窗体内可以添加多个面板,并且分成不同区域。中央:剩下的区域都是中央的,不能设置宽度。边框布局:BorderLayout是JFrame的默认布局。顶级容器:JFrame可以独立存在屏幕上的 会自带标题栏。流式布局:FlowLayout是JPanel的默认布局。容器:可以认为是装其他组件的组件。

2025-07-02 11:21:57 226

原创 读写文件需要注意的地方

摘要:本文介绍了Java文件读写操作的基本方法,针对管理系统数据持久化问题提出解决方案。主要内容包括:1)创建并定位文件路径;2)使用FileWriter进行文件写入(需注意flush和close操作);3)通过try-catch处理异常情况;4)FileReader读取文件内容(需字符转换和循环处理);5)区分覆盖写入和追加写入模式;6)使用PrintStream的替代写入方法。文中特别强调了异常处理的重要性,并演示了如何分割读取字符串数据。这些技术可以有效解决程序重启后用户数据丢失的问题。(149字)

2025-06-14 11:02:05 481

原创 开启管理系统之让系统更加简洁完善

前面讲述的内容可以实现基本的登录用户界面,但是监听其中有许多代码是需要封装的,比如判断用户是否存在的代码,弹窗,用户信息以及检查用户是否在线等代码,这些代码进行封装,一方面可以简化监听器中繁琐的判断以及循环语句,另一方面便于维护以及保护初始代码。不管是登录,注册,更新还是退出,都要首先调用服务类查找一下用户是否存在,密码是否正确。通过名字获取用户类:遍历整个用户数组1,查找该用户是否存在。用户退出类:查找用户是否存在,若存在则退出用户。用户更新类:查找用户是否存在,若存在则更新。下面就对一些代码进行封装。

2025-06-12 13:55:17 539

原创 开启管理系统之旅之事件监听器

4、回到按钮所在的方法中,创建一个监听器对象LoginListener loginListener = new LoginListener();上一篇内容讲述了如何创建用户登录界面,但是系统又是如何知道用户到底点击了什么按钮或者输入了哪一行呢,这就需要我们知道。5、使用按钮对象,调用addActionListener方法,将监听器对象添加到按钮对象中。3、方法中可以写入点击按钮所需执行的代码,比如输出一个“此按钮被点击”。2、将接口中的抽象方法复制到类中,改封号为大括号。鼠标位置与按钮的位置重合。

2025-06-05 20:14:26 352

原创 开启管理系统之旅之用户登录界面

(2)设置窗体对象的属性:标题,尺寸,位置,关闭时的操作,布局,可视化;FlowLayout:布局类-流式布局,规则-从左至右依次摆放,一行不够自动换行,整体居中,会根据组件的内容自动适应尺寸。java.awt:awt包(抽象窗体工具包),是一个早期的界面开发包,其中的可视化部分不推荐使用,但是元素规则可以使用。(3)创建好需要的组件对象:图片,图片标签,文本标签,输入框,按钮。(4)设置组件对象的属性和内容:颜色,字体,尺寸,文本,图片。类与对象,创建类,创建方法,创建对象,调用方法。

2025-06-03 19:13:47 344

原创 深度剖析类——访问权限修饰符 ,封装的作用与实现方式,单例模式

通过在类中提前预设的静态对象来访问其他公开成员(将不能创建对象变为可以创建对象,可以看做一个从不可能通向可能的通道,是一个有效的工厂方法。限制需要用到访问权限修饰符:用来限制代码的适用范围(范围是指项目结构上的范围,如类的范围是{},文件的范围是类文件,文件夹的范围是软件包)饿汉式单例模式:在创建类的时候就已经创建了对象,不需要重复创建,直接调用即可,这种是最简单的模式,但是容易造成资源浪费。封起来但是还得使用,这就可以通过不受限制的方法来访问受限制的属性或者执行受限制的方法。

2025-05-29 23:33:18 651

原创 学习小结——类与对象

那很简单就可以解释了static final 修饰的变量:static修饰是指类在被加载进内存的时候就要为此属性分配内存,所以属性已经存在了,而属性又被final修饰,所以必须在属性定义了以后就赋初值。区别:在这两种数据类型中,基本数据类型在内存中占用的空间固定,引用数据类型的空间是未知的,它需要先加载数据,赋值之后才能知道占用内存大小。被final修饰的变量:当final用来修饰变量时,此变量就变为常量,因此必须进行赋值。简单的说,类其实就是一个模型。方法:类中的函数,表明对象的行为,即所需完成的动作。

2025-05-29 09:17:50 474 1

空空如也

空空如也

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

TA关注的人

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