写给自己的几点建议持续更新
程序员文章站
2022-03-03 08:47:05
...
1、通常在遍历一个Iterator的时候不建议修改集合本身。
2、Hashtable上下文中同步是什么意思? 同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要获取对象锁,其他线程等待锁的释放。
3、
4、匿名的内部类是没有名字的内部类。能extends(继承) 其它类,可以实现接口。
5、sleep() 和 wait() 有什么区别:
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。 自动释放锁
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 不释放锁 所以容易造成死锁,不建议使用
6、String sql = "select * from student where id = " + sId;
这个sId是字符型,如果拼的SQL没有用单引号引起来,Oracle会隐含做一个to_char(sId)函数转换成实际的数据类型,这样的话索引就不起作用了。
2、Hashtable上下文中同步是什么意思? 同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要获取对象锁,其他线程等待锁的释放。
3、
select * from v$locked_object a,user_objects b where a.OBJECT_ID = b.object_id(+);--查看哪些记录被锁住
alter system kill session '4 ';--释放当前锁住的记录
4、匿名的内部类是没有名字的内部类。能extends(继承) 其它类,可以实现接口。
5、sleep() 和 wait() 有什么区别:
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。 自动释放锁
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 不释放锁 所以容易造成死锁,不建议使用
6、String sql = "select * from student where id = " + sId;
这个sId是字符型,如果拼的SQL没有用单引号引起来,Oracle会隐含做一个to_char(sId)函数转换成实际的数据类型,这样的话索引就不起作用了。
上一篇: 单例模式
下一篇: spring各jar作用