
Java
Java
jin mo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java_多线程_生产者消费者模型_互斥锁,阻塞队列
本文介绍了生产者消费者模型的两种Java实现方式。第一种基于synchronized锁和wait/notify机制,通过Desk类维护共享状态(FoodFlag和count),Customer和Cook类分别实现消费者和生产者逻辑。第二种使用ArrayBlockingQueue阻塞队列,生产者调用put()方法添加食物,消费者自动从队列获取。两种方案都解决了同步和互斥问题,确保在多线程环境下生产者不会在缓冲区满时生产,消费者不会在空时消费。阻塞队列方式更简洁,内置了线程安全机制,避免了手动同步的复杂性。代码原创 2025-07-24 18:58:50 · 482 阅读 · 0 评论 -
Java_try...catch(异常)
catch中是空指针异常,最后输出的还是数据索引越界异常,而且程序没有正常结束,由此得出,捕获异常之后没有与之对应的catc就会交给虚拟机来进行处理。当try代码遇到问题,之后的代码就不会执行了,直接跳转到对应的catch,如果没有对应的catch与之匹配,则交给JVM虚拟机处理。第一个情况 ,就是我们在使用try捕获异常时,如果try中没有异常出现,我们就会一直执行代码,并且不会执行catch中的代码。由最后的结果我们知道,其实只执行了数组索引异常的处理,由此引出我们的第三种情况。原创 2025-06-11 01:38:28 · 297 阅读 · 0 评论 -
汉诺塔问题(Java实现)
汉诺塔问题原创 2024-10-05 18:04:27 · 258 阅读 · 0 评论 -
Java项目练习_学生管理系统
代码实现了基本的学生管理系统功能,包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。使用了ArrayList来存储用户和学生信息。使用了Scanner类来处理用户输入。原创 2024-10-31 01:46:47 · 1081 阅读 · 0 评论 -
Java中键盘录入问题之 next 和 nextLine
当使用Scanner对象的next()方法时,它会读取输入直到遇到第一个分隔符(默认是空白字符,包括空格、制表符、换行符等),然后返回这个标记作为一个字符串。结论:next()方法无法接受空格,空格之后的数据仍然存在于输入流中,等待被后续的next()或nextLine()调用读取。我们的next无法接收空格,导致了我们str接受了空格和空格后面的数据,所以会打印。这两者的根本区别就是一个可以将空格录入进去,一个不能将空格录入进去。原创 2024-10-30 10:30:00 · 323 阅读 · 0 评论 -
Java案例_查看最后一个英语单词的长度
Java案例——查看最后一个英语单词的长度。原创 2024-10-29 10:00:00 · 152 阅读 · 0 评论 -
Java案例_字符串转换数字相乘
【代码】Java案例——字符串转换数字相乘。原创 2024-10-29 09:00:00 · 160 阅读 · 0 评论 -
Java案例_随机生成验证码
Java案例——随机生成验证码。原创 2024-10-28 10:15:00 · 290 阅读 · 0 评论 -
Java案例_反转比较
【代码】Java案例——反转比较。原创 2024-10-28 10:00:00 · 303 阅读 · 0 评论 -
Java案例_数字转化罗马数字
Java案例——数字转化罗马数字。原创 2024-10-27 21:35:35 · 150 阅读 · 0 评论 -
StringJoiner
StringJoiner概述:StringJoiner和StringBuilder一样,也可以看成是一个容器,创建之。中间这又 “[” 又 "]"的,而且还要判断是不是最后一个,来决定要不要输出 “,”。StringJoiner并没有在java.lang核心包中,所以我们要使用还需要导包。在上一篇中,我们使用了StringBuilder类完成字符串的拼接。作用:提高字符串的操作效率,代码编写简单。所以,这一篇我们来解决这个问题!后里面的内容是可以改变的。原创 2024-10-27 20:32:47 · 329 阅读 · 0 评论 -
StringBuilder_练习
判断是否为回文数(回文字符串),字符串的拼接原创 2024-10-27 20:08:29 · 284 阅读 · 0 评论 -
StringBuilder
再补充一个方法: sb.delete(int start,int end)方法:删除索引2到4(不包括索引4)的值。概述:StringBuilder可以看成是一个容器,创建之后里面的内容是可变的。注意,我们在使用StringBuilder类的时候,打印的是属性值,不是地址值。作用:提高字符串的操作效率。原创 2024-10-27 19:36:11 · 294 阅读 · 0 评论 -
Java案例总结
String类 是在java.lang包中的,所以我们在使用的时候是不需要导包的。原创 2024-10-27 19:01:49 · 468 阅读 · 0 评论 -
Java案例_屏蔽信息
这里我们介绍一个新方法,替换。原创 2024-10-27 18:47:46 · 300 阅读 · 0 评论 -
Java案例_金额的转换
Java案例——金额的转换。原创 2024-10-27 18:05:05 · 471 阅读 · 0 评论 -
Java案例_字符串
*定义一个方法,把 int数组中的数据按照指定的格式拼接成一个字符串返回调用该方法,并在控制台输出结果,例如:数组为 int[] arr = {1,2,3};执行方法后的输出结果为:[1,2,3]*/System.out.println("请输入数组的长度:");System.out.println("请输入一个数组:");i++) {}else//定义一个方法,实现字符串反转。原创 2024-10-27 17:10:11 · 356 阅读 · 0 评论 -
Java案例_用户登录案例
【代码】Java案例——用户登录案例。原创 2024-10-27 15:27:52 · 227 阅读 · 0 评论 -
Java_字符串的比较
我们通过之前的学习已经知道了我们每次new都需要在堆空间内开辟一个新空间,给其地址,这里我们new了两次,所以s1和s2地址不同,所以比较的值为false。s1 是new出来的,所以它应该在堆内存中,而s2是通过直接赋值产生的,在串池里面,两者的地址还是不相同,所以还是false。s1 由于之前没有abc这个值,所以会在串池中创建出来,然后到s2 我们在串池中找,找到了,直接将地址赋值给s2。这就是引用数据类型,比较的是地址值。-------比较的是数据值。-------比较的是地址值。原创 2024-10-27 15:02:48 · 238 阅读 · 0 评论 -
Java基础综合训练
定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。要求5:查询数组id为“1”的学生,如果存在,则将他的年龄+1岁。如果存在,则删除,如果不存在,则提示删除失败,要求2:添加完毕之后,遍历所有学生信息。要求4:删除完毕之后,遍历所有学生信息。学生的属性:学号,姓名,年龄。要求3:通过id删除学生信息。讲解写在了代码的注释中。原创 2024-10-23 20:16:09 · 374 阅读 · 0 评论