- 博客(11)
- 收藏
- 关注
原创 synchronized锁的使用
当synchronized关键字修饰的是方法时,调用该同步方法获得的是该方法所属对象的对象锁。同步代码段所需要的锁,是通过传参指定的。当另一个线程执行完毕,释放了占有的锁, 这些等待的线程才能继续执行。每一个对象创建时,都会有一个对象锁,本质是一个监视器Mointer。线程进入等待状态,本质就是加入了一个同步等待队列(是系统级别的)当线程争抢对象锁时,如果对象所以被占用,线程将处于等待状态。当线程调用同步方法或同步代码段时,就会获得一个对象锁。而不是调用这个方法的线程对象的对象锁。
2024-08-21 18:32:26
263
原创 lock的wait等待
当业务逻辑中不满足某些条件的时候,可以基于Condition条件对象进行等待。所以也提供了类似于synchronized配合wait相关的功能。通过lock对象可以获得一个condition对象,表示条件对象。注意:这里使用的不是lock对象的wait方法。lock是synchronized的代替方案。当业务执行时,遇到等待条件,通过调用。当另一个线程使用完锁之后,通过调用。将等待队列中的线程重新加入同步队列。
2024-08-21 18:04:24
319
原创 基于Math常用用法的小练习
如:"111010101" = 1 * 28 + 1 * 27 + 1 * 26 + 0 * 25 + ....思路:身份证号中xxxxxx19870223xxxx 固定部分的内容为出生年月日。1.输入一个只有01的字符串,将其当做二进制数,计算其对应的十进制结果。截取日期部分,转换日期,与当前日期计算差值(起初是毫秒计算到年)2.控制台输入用户的身份证号,计算用户的年龄。
2024-08-08 15:39:02
169
原创 ^和$的含义
15[0|1|2|3|5|6|7|8|9] :表示以 15 开头,第三位可以是 0、1、2、3、5、6、7、8、9 中的任意数字。18[0|1|2|3|5|6|7|8|9] :表示以 18 开头,第三位可以是 0、1、2、3、5、6、7、8、9 中的任意数字。\\d{8} :\\d 表示匹配一个数字,{8} 表示前面的数字重复 8 次,即表示后面跟 8 位数字。13[0-9] :表示以 13 开头,第三位可以是 0 到 9 中的任意数字。/^a/ 匹配以a字符作为开头的字符串。
2024-08-07 15:04:03
223
原创 完成双色球中奖小程序
1.输入我们的幸运号码,确保输入的数字不重复 对我们输入的号码进行排序。2.构建在新定义的数组中将红色球和蓝色的方法 并对拿出的球号进行排序。4.对比两组号码,确定最终是否中奖,计算红球相同的数量,篮球是否相同。3.随机产生中奖号码,确保数字不重复,并对其进行排序。
2024-08-03 17:56:11
221
原创 使用链式结构进行封装
3.在重写过程中我新定义了一个异常 用于处理IndexBox出现不合理数据或不合法范围。1.在IndexBox接口中定义规则 使用泛型讲不确定的数据类型定义成<E>对于IndexBox的规则定义需要新创建Manager接口用于辅助实现。2.将定义好的规则打包 导入新的项目 在新的项目中对规则进行重写。在进行完善的时候我遇到了 算法逻辑 等问题并积极学习改进。创建LinkedBox 继承IndexBox。4.最后对于我进行的链式封装进行测试。5.对此我们完成了链式封装。生成重写方法 并进行重写。
2024-07-28 16:06:45
203
1
原创 使用正则表达式完成测试练习
控制台输入电话号码, 使用正则表达式判断输入的号码是否正确。控制台输入邮箱,使用正则表达式判断输入的邮箱是否正确。控制台输入密码, 使用正则判断密码是否是8位的数字。中连续的3个数字用大写A替换。中的每一个单词反转并打印。
2024-07-28 15:52:26
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人