- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 AQS笔记
ReentrantLock lock = new ReentrantLock(); try{ //加锁 lock.lock(); //执行业务相关代码 }catch(Excetion e){ }finally{ //释放锁 lock.unlock(); } ReentrantLock 内置了一个抽象类AbstractQueuedSynchronizer,公平锁类FairSync,非公平锁类NonfairSync 用来执行操作, 构造方法 /** * Creates an ins
2021-09-13 22:25:55
83
原创 HashMap1.8笔记
一 hash() static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } 校验key是否为null 1)如果为null则返回0,这也就是为什么hashMap中只能有一个为null的key. 2)不为null,调用Object的hashCode,将返回值带符号右移16位再与返回值进行 ^(按位
2020-11-12 23:00:34
82
原创 为什么wait方法要在while循环中,而不是if判断
最主要的原因是休眠之后的线程被唤醒之后接着执行休眠后的代码,这时候的数据可能被其他线程修改了,所以说可能会造成异常.但是while循环在唤醒之后因为有while关键字的存在会再次检查是否满足条件.从而保证每次条件都是满足的.具体代码参考: https://blog.csdn.net/HD243608836/article/details/97754956 ...
2020-10-09 14:22:21
429
原创 手工注册rabbitmq的消费者
正常的配置rabbitmq消费者 @Bean SimpleMessageListenerContainer createSimpleMessageListenerContainer(Queue omsQueue,ConnectionFactory connectionFactory,RabbitTransactionManager rabbitProducerTxManager,CommonMessageConsumer commonMessageConsumer){ SimpleM
2020-08-26 15:01:03
937
原创 HashMap源码笔记
类属性 /** * The next size value at which to resize (capacity * load factor). * 要调整大小的下一个大小值(容量*负载系数)既扩容之后集合的长度 * * @serial */ // (The javadoc description is true upon serialization. // Additionally, if the table array has not
2020-07-21 09:31:32
110
原创 记录一下mybatis的坑,话不多说先贴代码
insert into 表名 ( 字段名1,2,3,4,5,6,7,8,9 ) values ( 值1,2,3,4,5,6,7,8,9 ) 先说明下这个表是联合主键,所以我把所有字段全部都设置了值的, 这里要说的是如果没有useGeneratedKeys=”false”这个属性,那么...
2018-08-16 18:23:19
161
空空如也
jdbcTemplate插入报错后的问题
2021-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人