- 博客(15)
- 收藏
- 关注
原创 设计模式-观察者模式
对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,其主要解决一个对象状态改变给其他关联对象通知的问题,保证易用和低耦合。
2024-09-28 23:20:57
385
原创 obj.wait() 方法注意事项
除了被唤醒,中断,或达到超时时间之外,一个线程仍然可以唤醒,所谓的虚假唤醒,虽然(这种情况)实际发生的概率很低,但是应用程序还是应该通过检测条件是否满足(不满足时继续等待)来处理这种情况.换句话说,wait() 方法应该总是写在循环里面.线程被唤醒之后不会立即执行,而是进入入口就绪队列,当这个被唤醒的线程再次获取 CPU 执行权后,会从调用 wait() 方法之后的地方开始执行,但是此时条件可能仍然不满足,因此必须重新检查,也因此 wait() 方法应该写在循环里面.
2024-09-15 15:55:23
384
原创 线程的生命周期
也就是说,可运行状态的线程可能在运行,也可能不在运行,虽然源码中没有进一步细分为两个状态,不过可以参照 linux 的进程状态,进一步将可运行状态细分为就绪状态(READY)和运行中状态(RUNNING)线程执行终止,即 run() 方法执行完成.这个线程对象也许还存活着,但它已经不是一个单独执行的线程,线程一旦终止了,不能复生。可运行状态的线程位于可运行线程池中,等待被线程调度程序选中,被选中后,获得 CPU 时间片,然后真正执行.新创建了一个线程对象,但还没有调用 start() 方法。
2024-09-15 15:51:45
396
原创 MySql 事务&锁机制
事务一. MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务.1.在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。2.事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。3
2017-12-22 21:13:57
381
原创 Guava之ArrayListMultimap
ClassArrayListMultimapAll Implemented InterfacesListMultimap简介Implementation of Multimap that uses an ArrayList to store the values for a given key. A HashMap associates each key with an ArrayList of v
2017-12-20 19:54:14
695
原创 IDEA常用快捷键
Ctrl-N Class… (find by name) Ctrl-Shift-N File… (find by name) Ctrl-Shift-Alt-N Symbol… (find by name) Ctrl-G Line… (goto line) Ctrl-H Type hierarch
2017-11-08 09:54:47
216
原创 Java基础之字符串
先看一个常见的java题public class Practice { public static void main(String[] args) { System.out.println("Ja"+"va"=="Java");//true String s1="Ja"; String s2="va"; System.out.printl
2017-08-27 00:37:17
240
读Excel工具类并处理合并单元格
2024-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人