自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 207. 课程表 - 力扣(LeetCode)

你这个学期必须选修numCourses门课程,记为0到。在选修某些课程之前需要一些先修课程。先修课程按数组给出,其中,表示如果要学习课程i则先学习课程i。[0, 1]01请你判断是否可能完成所有课程的学习?如果可以,返回true;否则,返回false。输入:numCourses = 2, prerequisites = [[1,0]]输出:true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。这是可能的。

2025-08-14 22:25:41 546

原创 37.介绍ThreadLocal

ThreadLocal 是 Java 中提供的线程隔离机制,能够在多线程环境中为每个线程提供独立的。

2025-08-08 15:02:38 292

原创 36.介绍HashMap及其put方法的操作过程

数组的大小总是2的幂(使用位运算代替取模来计算桶下标,index = (数组长度 - 1) & key.hash,效率更高)当多个键映射到相同的数组索引时,会形成链表,Entry 节点包含键值对和指向下一个 Entry 的引用,以此来解决哈希冲突。,HashMap的底层数据结构是“数组+链表+红黑树”,优化链表过长时的查找性能。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!每个数组元素是一个单一的 Entry 节点或链表的头结点。,HashMap的底层数据结构是“数组+链表”

2025-08-08 13:03:39 224

原创 200. 岛屿数量 - 力扣(LeetCode)

给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。输入:grid = [输出:1输入:grid = [输出:3'0''1'

2025-08-08 11:50:10 278

原创 198. 打家劫舍 - 力扣(LeetCode)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。输入:[2,7,9,3,1]输出:12。

2025-08-08 10:15:55 371

原创 155. 最小栈 - 力扣(LeetCode)

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()输入:输出:解释:--> 返回 -3.--> 返回 0.--> 返回 -2.topgetMinpushpoptopgetMin4。

2025-08-08 09:04:32 445

原创 152. 乘积最大子数组 - 力扣(LeetCode)

给你一个整数数组nums,请你找出数组中乘积最大的非空连续 子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个整数。输入: nums = [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: nums = [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

2025-08-07 23:02:48 323

原创 148. 排序链表 - 力扣(LeetCode)

给你链表的头结点head,请将其按排列并返回。输入:head = [4,2,1,3]输出:[1,2,3,4输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5输入:head = []输出:[]你可以在O(n log n)时间复杂度和常数级空间复杂度下,对链表进行排序吗?

2025-08-07 21:36:20 343

原创 35.Thread和Runable的区别?

Thread 是一个具体的线程类,不能被多个线程共享,无法直接提交给线程池。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!时,通常是为了实现任务共享,将任务传递给多个线程执行。是一个接口,表示一个可以被多个线程共享执行的任务。常用于线程池,因为它可以在多个线程间共享任务。每个线程独立栈内存,资源消耗较大。时,任务可以被多个线程共享。可被线程池复用,更节省内存。是一个类,表示一个线程。

2025-08-07 20:28:35 244

原创 34.Java支持多继承吗?

多继承是指一个子类继承自多个父类。

2025-08-07 16:55:27 176

原创 3.Redis 持久化机制

RDB 将内存数据的快照保存为二进制文件,存储在磁盘上savebgsaveforkforksave m nbgsaveflushallflushdbdump.rdbbgsavedump.rdbforkfork。

2025-08-07 15:47:39 380

原创 2.Redis的哨兵机制

3.自动故障转移:所有哨兵通过 Raft 算法选举出一个领导者哨兵,由它执行故障转移。领导者哨兵从原主节点的从节点中选出一个新的主节点,并通过。2.故障判定:如果单个哨兵检测到某节点超时无响应,它会将其标记为“主观下线”;当多数哨兵判定主节点不可达时,会触发“客观下线”4.通知与配置更新:哨兵通过 Redis 的发布/订阅频道广播新主节点信息。1.监控:哨兵节点持续监控所有 Redis 主节点和从节点的状态,定期发送。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-07 15:33:56 261

原创 1.Redis 雪崩、击穿、穿透

热点数据突然失效,此时大量请求并发地访问该缓存,导致数据库被击穿。很多线程将数据缓存到Redis,造成浪费,只缓存一次就够了。

2025-08-07 15:16:01 605

原创 10.MySQL的count(1)、count(*)和count(列名)的区别?

1.COUNT(1)NULL2.COUNT(*)NULLCOUNT(*)COUNT(1)3.COUNT(列名)NULL。

2025-08-07 07:29:16 165

原创 9.如何解决MySQL的深分页问题?

使用LIMIT查询时,LIMIT 0,10查询第一页的10条数据,但如果是查询第 10000 页的10条数据,查询性能会显著下降,查询时间可能从几毫秒增加到几秒。

2025-08-06 22:33:17 253

原创 2.RabbitMQ如何保证消息发送成功?

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-06 22:22:39 311

原创 10.如何判断对象是否存活?(是不是垃圾)

一个对象被引用时,引用计数就会增加;当引用不再指向该对象时,引用计数会减少。如果引用计数为0,则说明没有任何地方再引用该对象,它就可以被回收了。从根对象开始遍历,访问所有可达的对象并标记。如果某个对象无法通过根对象访问到,被认为是不可达,可以回收了。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!优点:可以解决循环引用问题。

2025-08-06 22:12:20 130

原创 1.解决消息队列积压的方案

4.征用更多的计算资源,部署解决故障后的消费者程序。每次消费者将与申请的临时队列对接,分别消费不同队列中的信息。3.临时创建消费者程序,用于将积压的消息转移到新建的队列中。该程序会将消息均匀地分布在临时新建的消息队列中。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!1.修复消费者(consumer),确保其消费速度恢复正常。消息队列无法正常消费,大量数据在消息队列中积压的解决方案。2.临时将消息队列数量倍数增加,确保能够容纳更多的消息。

2025-08-06 21:45:49 116

原创 9.触发Full GC的条件

老年代空间不足通常发生在新生代对象晋升或大对象创建时。执行Full GC后,若空间依旧不足,会抛出。优化:避免大对象、大数组的创建,尽量让对象在Minor GC时回收,延长对象在新生代的存活时间。使用RMI进行RPC或管理的应用中,默认每小时执行一次Full GC。可以通过设置启动参数。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!来调整Full GC的执行间隔,或通过。

2025-08-06 21:19:21 226

原创 8.JVM对象什么时候会进入老年代?

在 Survivor 区,从年龄 1 开始累加对象大小,若某年龄 N 的累加大小 > Survivor 区 50%,则 年龄 ≥ N 的对象 直接晋升老年代。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-06 20:18:11 199

原创 7.三色标记算法

对象自身已被扫描,且其直接引用的所有对象也已被扫描完成(递归结束),无需再处理。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!三色标记是一种垃圾回收算法,主要用于并发垃圾回收,尤其是在分代收集中。对象尚未被垃圾回收器扫描到(可能是存活对象,也可能是垃圾)对象已被标记为存活,但其直接引用的对象尚未被扫描。最终标记完成后仍为白色的对象才是垃圾。

2025-08-06 20:06:17 224

原创 6.常用的JVM命令

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-06 19:07:04 139

原创 5.垃圾收集器分类以及选择

G1垃圾收集器是为了弥补CMS的缺点而设计的,旨在提供更加一致的停顿时间,并且能够高效地进行垃圾回收。Shenandoah 是一个低延迟垃圾回收器,目标是提供尽可能低的停顿时间,并且适合大内存环境。ZGC 是一个低延迟垃圾收集器,设计目标是能够在极低的停顿时间下处理大堆内存的垃圾回收。采用并发方式进行垃圾回收,旨在减少停顿时间,特别适合对响应时间要求较高的应用。最基础的垃圾收集器,使用单线程进行垃圾回收,适用于单核或者内存较小的机器。类似于并行垃圾收集器,但它主要用于老年代的垃圾回收。

2025-08-06 17:58:27 956

原创 4.Java 中对象的生命周期

可达性指的是通过根对象(如局部变量、静态字段等)能否直接或间接访问对象。若能访问,则该对象是可达的。当对象没有任何有效引用时,进入死亡阶段,并成为垃圾回收的候选对象。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!垃圾回收是 Java 内存管理的核心机制,用于自动回收不再使用的对象。对象的生命周期从对象创建开始,直到对象被垃圾回收器回收为止。此时,堆内存中已经分配了对象空间,且可以通过引用访问该对象。对象在堆内存中保持活动状态,直到它不再被任何有效引用所指向。

2025-08-06 17:32:57 163

原创 3.类加载器与双亲委派机制

类加载器是Java中负责将类文件(.class 文件)加载到JVM内存中的组件Java类加载器的层次结构findClass。

2025-08-06 17:08:30 195

原创 2.JVM的垃圾回收算法

新生代:主要用于存放新创建的对象,生命周期较短,通常会经历频繁的垃圾回收(Minor GC)。老年代:存放的是存活时间较长的对象,经历过多次GC后会晋升到老年代,回收的频率较低(Full GC)通过将对象分代,垃圾回收能够根据对象的存活时间不同进行不同的处理,提高了GC的效率。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!对象晋升到老年代的条件不当可能导致老年代内存不足,触发Full GC。标记完成后,扫描整个空间,回收未被标记的对象。与标记-清除算法类似,先对对象进行标记。

2025-08-06 16:47:45 303

原创 1. JVM内存模型

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-06 16:35:32 269

原创 146. LRU 缓存 - 力扣(LeetCode)

请你设计并实现一个满足约束的数据结构。实现LRUCachecapacitykey-1keyvaluekey-valuecapacity函数get和put必须以O(1)的平均时间复杂度运行。输入输出解释// 缓存是 {1=1}// 缓存是 {1=1, 2=2}// 返回 1// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 返回 -1 (未找到)// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 返回 -1 (未找到)// 返回 3。

2025-08-06 09:24:21 736

原创 33.介绍Java中的锁

Java 中的锁有三种状态:偏向锁 → 轻量级锁 → 重量级锁,这些锁通过对象头中的mark word来标明锁的状态偏向锁轻量级锁重量级锁锁的升级路径无锁 → 偏向锁 → 轻量级锁 → 重量级锁。

2025-08-05 23:09:42 1291

原创 32.高并发中的集合类问题及发展历程

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

2025-08-05 21:53:12 196

原创 31.泛型常用特点有哪些?

泛型最重要的特点之一是。使用泛型时,编译器可以在编译阶段检查类型的一致性,避免了在运行时出现类型转换异常。

2025-08-05 21:47:35 131

原创 30.Java和C++的区别?

C++支持面向过程和面向对象的编译型语言,直接编译为机器码,支持多继承,提供运算符重载和模板元变成等底层控制能力,性能更高。C++编译型,源码直接编译为平台特定机器码,Windows程序无法直接在Linux运行,需要重新编译。Java是面向对象的跨平台语言,通过JVM实现“一次编写,到处运行”,单继承+接口实现多态。Java半编译半解释,源码——>字节码——.JVM解释执行,适应跨平台需求。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!Java采用自动垃圾回收GC管理内存。

2025-08-05 21:37:21 171

原创 29.什么是 ABA 问题?

ABA 问题通常出现在多线程环境中,涉及对共享变量的更新操作示例:假设有一个账户余额为 100 元的共享变量。这个过程就是 ABA 问题,线程 2 被错误地认为余额没有发生变化,因此错误地继续执行了原本的更新操作。

2025-08-05 21:31:10 218

原创 28.ConcurrentHashMap 介绍

ConcurrentHashMap 支持并发的更新操作,多个线程可以同时进行插入、删除、更新等操作,无需对整个哈希表进行锁定。不同线程可以同时访问不同的区段,从而减少并发操作时的冲突范围,提高并发性能。ConcurrentHashMap 的迭代器是弱一致性的,允许在迭代过程中哈希表发生变化,这样可以避免在迭代期间加锁,从而提高了迭代的性能。是 Java 集合框架中的一个实现类,提供线程安全的哈希表,支持高并发的读写操作,保证在多线程环境下的数据一致性。

2025-08-05 20:36:29 233

原创 27.Array和ArrayList的区别

Array是固定大小的数组,一旦创建,数组大小就不能改变ArrayList是动态数组,数组大小随着元素的增加而动态变化。

2025-08-05 19:57:54 118

原创 26.ArrayList和LinkedList的区别

ArrayList底层使用动态数组Array实现,数组的大小会随着元素的增加而动态调整LinkedList底层使用双向链表实现,每个元素包含指向前后元素的引用。

2025-08-05 19:52:53 126

原创 25.HashMap和HashTable的区别

HashMap:非线程安全,多个线程同时访问和修改时可能出现数据不一致的情况。需要通过外部同步机制(如Collections.synchronizedMap())来保证线程安全HashTable:线程安全,每个方法都使用 synchronized进行了同步,但由于同步的开销,性能较低。

2025-08-05 19:30:40 254

原创 24.Set、List、Map的区别

本文介绍了Java集合框架中的三种主要接口:Set、List和Map。Set是无序且不重复的集合,通过equals()判断重复,常用实现有基于哈希表的HashSet和基于红黑树的TreeSet。List是有序可重复的集合,支持索引访问,常用实现有ArrayList和LinkedList。Map是键值对存储结构,键不可重复,常用实现包括无序的HashMap和有序的TreeMap。文章对各集合的特点、底层实现及操作时间复杂度进行了对比说明。

2025-08-04 22:03:43 438

原创 23.Java中static关键字的作用

为特定数据类型或对象分配与对象个数无关的共享存储空间使得方法或属性与类本身而不是对象关联,从而可以在不创建对象的情况下直接调用。

2025-08-04 21:05:13 182

原创 22.Java中的AQS

exclusiveOwnerThread:记录当前持有锁的线程,若当前线程等于 exclusiveOwnerThread ,则允许重入。AQS的核心思想是通过先进先出的队列管理线程状态(等待或执行),并通过CAS操作无锁地修改状态,控制线程的执行顺序。AQS是Java实现同步机制的核心框架,支持锁管理、线程阻塞和队列管理。这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!state变量:表示同步状态。

2025-08-04 20:34:29 86

分布式多车探索系统 分布式多车协作探索系统

设计一个分布式多车协作探索系统,确保各组件独立且高效协作。主要开发内容包括功能分布与接口设计、黑板数据字典的实现、消息中间件搭建、各构件的独立开发与调试、以及系统测试与优化。重点关注组件间数据共享与通信,支持动态添加小车与显示界面状态,确保高效且可扩展的系统架构

2025-04-01

单机版坦克大战游戏采用了MVC架构设计,分为模型层、视图层和控制层,明确了每个层的职责,保证了代码的清晰性和扩展性 在设计中,游戏核心逻辑和数据管理由模型层负责,图形绘制和界面更新由视图层承担,用

该款单机版坦克大战游戏采用了MVC架构设计,分为模型层、视图层和控制层,明确了每个层的职责,保证了代码的清晰性和扩展性。在设计中,游戏核心逻辑和数据管理由模型层负责,图形绘制和界面更新由视图层承担,用户输入和游戏事件处理则由控制层实现。使用依赖倒置原则和回调函数技术,将图形绘制功能从控制层移至视图层,使得控制层不再关注具体的绘图实现,方便后期更换显示图片或支持3D图形显示。 在控制层方面,玩家的坦克通过鼠标跟随并且用右键开炮,空格键发射炮弹。界面上同一时间最多发射三发炮弹,并且敌方坦克最多同时出现在屏幕上5辆,敌方坦克的位置是随机生成的。游戏支持开始、结束、存档功能,同时统计游戏时长和击毁敌方坦克数。 地图功能上,新增了草丛和河流等障碍物,坦克在草丛中不可见,河流则是不可跨越的。通过碰撞检测实现这些交互。此外,后台任务(如数据更新、碰撞检测等)通过线程池技术进行管理,优化了游戏的运行效率并避免了主线程的阻塞。

2025-03-29

简易绘图器C++ 利用GDI,GDI+或WPF实现简单绘图器;实现绘制线条、矩形、圆形,可改变线条或填充

1.实验目的 该项综合实验,旨在通过使用Visual C++进行系统开发,使学生巩固Windows编程的基础知识并增强综合能力。该实验包括界面设计与使用GDI、GDI+或WPF等图形子环境编程技术的能力 2.实验要求 (1)利用GDI,GDI+或WPF实现简单绘图器; (2)实现绘制线条、矩形、圆形,可改变线条或填充的颜色

2024-07-08

东软颐养中心系统 Spring Boot+Vue+MySQL

实习课题:东软颐养中心 课题意义和目标:我国目前正面临着人口老龄化的严峻挑战,因此构建完善的社会养老体系成为了社会养老服务的重要组成部分。本课题旨在通过先进技术和创新模式,实现让老人颐养天年的目标,为应对老龄化问题提供一个全面系统的解决方案。 硬件环境:Intel(R) Iris(R) Xe Graphics、16GB RAM、512GB SSD 软件环境:IntelliJ IDEA 2020.3.4、Visual Studio Code 1.98.2、MySQL 8.1.0 系统功能性需求:该系统包含管理员、健康管家(护工)和普通客户三种类型角色,功能模块包括床位管理、客户管理、膳食管理、护理管理、健康管家、用户管理等六个基本功能模块。每个模块下设若干子模块。

2025-03-29

通信录查询系统(查找应用) 问题描述:设计散列表(哈希表)实现通讯录查找系统 (1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;

通信录查询系统(查找应用) 问题描述:设计散列表(哈希表)实现通讯录查找系统。 (1) 设每个记录有下列数据项:电话号码、用户名、地址; (2) 从键盘输入各记录,分别以电话号码为关键字建立散列表; (3) 采用二次探测再散列法解决冲突; (4) 查找并显示给定电话号码的记录; (5) 通讯录信息文件保存。 设计思路: 先构建一个哈希表,然后按照电话号码查找并输出,将哈希表按序存进文件中。

2025-03-29

迷宫与栈问题(图的应用) 问题描述:以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍 设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论

迷宫与栈问题(图的应用) 问题描述:以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 设计思路: 当前方有路时,前进;前方无路则退回并重新选择之前为走过的路,直到出口或返回入口。使用二维数组mg[m][n]表示迷宫,用 zx、zy表示x和y的移动

2025-03-29

哈夫曼编码/译码系统(树应用) 问题描述:根据哈夫曼编码算法,编写文件压缩及解压缩软件(有图像界面为最佳,无亦可),可对word文件进行压缩,压缩时要求显示文件中每个字符的哈夫曼编码及其文件的压缩率

哈夫曼编码/译码系统(树应用) 问题描述:根据哈夫曼编码算法,编写文件压缩及解压缩软件(有图像界面为最佳,无亦可),可对word文件进行压缩,压缩时要求显示文件中每个字符的哈夫曼编码及其文件的压缩率,文件解压后,对比解压后文件和压缩前文件。 设计思路:先将哈夫曼树的结构定义:权值,双亲,左孩子,有孩子;然后建立哈夫曼树; 接下来在建立的哈夫曼树上进行二进制编码。左:编码0,右:编码1,然后从根节点到树叶的所有1、0排列,得到哈夫曼编码。

2025-03-29

矩阵链乘积次数问题(栈和队列的应用) 问题描述:输入n个矩阵的维度和一个矩阵链乘积表达式,请输出按照该表达式计算所有乘积运算的乘法次数之和 如果乘法无法进行,输出error 假定A是m*n矩阵,B是n

矩阵链乘积次数问题(栈和队列的应用) 问题描述:输入n个矩阵的维度和一个矩阵链乘积表达式,请输出按照该表达式计算所有乘积运算的乘法次数之和。如果乘法无法进行,输出error。假定A是m*n矩阵,B是n*p矩阵,那么AB是m*p矩阵,A*B运算的乘法次数为m*n*p。如果A的数不等于B的行数,则乘法无法进行。

2025-03-29

约瑟夫环(循环链表和顺序表) 问题描述: 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数) 一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序

约瑟夫环(循环链表和顺序表) 问题描述: 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 1.循环链表 2.顺序表

2025-03-29

停车场管理系统Java

停车场管理系统Java,大二时的课设。 一、课程实验的目的与要求 本次实验为《停车场车辆计费管理系统》设计 停车场车辆计费管理系统的每次停车基本信息包括:车牌号码(String),车位号码(String),入场时间(year,month,day,hour(int)),出场时间(year,month,day,hour(int)),显示停车场空闲车位等。 除了实验要求上规定的功能外,该系统根据模拟显示情景,又增加了一些扩展功能,如下: 扩展功能:1.将用户分为普通用户和VIP用户,两种用户的收费模式有所不同,具体差别为:普通用户停车一小时内无需付费,一小时后每小时3元停车费;VIP用户停车一小时内无需付费,一小时后每小时2元停车费; 2.受当下疫情大环境影响,该系统增加了车辆安全信息报备方法(即疫情情况下,车辆所经过地区的风险等级public void VehicleSafetyReporting()方法); 3.该系统在停车场位管理上做出了区分:普通用户和VIP用户可以选择的停车区域不同,此外,专门为经过了高风险地区的车辆提供了隔离区车位。 本次设计使用了相关的类和接口,例如,该系统

2024-07-08

空空如也

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

TA关注的人

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