摘要:
1. IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示 如果不是代码错误,降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别 参考 2. 引入Lo 阅读全文
摘要:
代理 代理顾名思义:代为处理。不是对目标对象的直接操作,而是通过代理对目标对象进行包装,此时可以在目标对象的基础上添加额外的操作以满足业务需求。图示 分类:动态代理、静态代理。 代理三要素:共同接口、真实对象、代理对象 引入代理的原因: 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对 阅读全文
摘要:
try-finally例子 打开文件读取第一行 存在不足 如果底层物理设备异常那么reader.readLine()会异常,同样reader.close()也会异常。这种情况下,第二个异常会抹掉第一个异常。因第一个异常往往是问题所在,抹掉第一个异常导致调试复杂 代码繁琐 引入try-with-res 阅读全文
摘要:
介绍 ReentrantLock称为重入锁,比内部锁synchonized拥有更强大的功能,它可中断、可定时、设置公平锁 【注】使用ReentrantLock时,一定要释放锁,一般释放放到finnal里写。 提供以下重要的方法 lock():获得锁,如果锁已被占用,则等待 lockInterrupt 阅读全文
摘要:
初心 用interrupt中断程序 初步实现 输出 问题:虽然是被中断状态,但实际并未中断 interrupt说明 在java中主要有3个相关方法,interrupt(),isInterrupted()和interrupted()。 interrupt(),在一个线程中调用另一个线程的interru 阅读全文
摘要:
序 死锁在平时开发,尤其是多并发编程时是要避免,不过要自己刻意写个死锁还不一定容易,下面参考别人代码写一个 代码 说明 o1、o2是static类型属于整个累,所以当定义deadLock1、deadLock2时是公用o1、o2的 deadLock1设置flag=1,先锁住o1,然后睡800ms,此时 阅读全文
摘要:
介绍 DK1.5之后,提供了读写锁ReentrantReadWriteLock,读写锁维护了一对锁:一个读锁,一个写锁。通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。在读多写少的情况下,读写锁能够提供比排他锁更好的并发性和吞吐量。 源码定义 code 测试1 输出 结论:读读共享 测试 阅读全文
摘要:
原理 生产者在仓库没有满的时候进行生产,满了后等待 消费者在仓库有存货事新型消费,没货是等待 示例 #Phone public class Phone { private int id; public Phone() { id = new Random().nextInt(); } public i 阅读全文
摘要:
目标 部署一个单节点的ElasticSearch集群 依赖 java环境 安装 下载、解压 配置 config/elasticsearch.yml 参数含义 cluster.name 用来指定集群的名称。如果不指定,则默认是 elasticsearch。 node.name 用来指定当前节点的名称, 阅读全文