摘要: 上一章我们说了多线程编程所带来的好处( java并发编程 ||Thread生命周期详解),但是既然有那么多好处,肯定也会带来一些问题,这一章我们就来看看它带来的问题以及解决的办法。 多线程所带来的问题? 线程不安全 1.首先我们举一个例子来证明线程的不安全 我们对一个数自增1000次,并且用多线程来 阅读全文
posted @ 2021-04-22 20:39 皇问天 阅读(266) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ是一个消息代理,它接受和转发消息,是一个由 Erlang 语言开发的遵循AMQP协议的开源实现。在RabbitMQ中生产者不会将消息直接发送到队列当中,而是将消息直接发送到交换机(exchange),交换机用来接受生产者发送的消息并将这些消息发送给绑定的队列,即:生产者-->交换机- 阅读全文
posted @ 2021-04-22 20:14 皇问天 阅读(375) 评论(0) 推荐(0) 编辑
摘要: Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上Bean 阅读全文
posted @ 2021-04-22 20:11 皇问天 阅读(12844) 评论(0) 推荐(0) 编辑
摘要: JVM架构和GC垃圾回收机制详解 JVM架构图分析 下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化) JVM被分为三个主要的子系统 (1)类加载器子系统(2)运行时数据区(3)执行引擎 1. 类加载器子系统 Java的动态类加 阅读全文
posted @ 2021-04-22 20:09 皇问天 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 正统的方法 网上已经有很多文章来说明bean循环依赖的原因了. 总结就是先把bean放到三级缓存(singletonFactory)中,方便被依赖的bean可以读到它。 那解决的方法就是不用构造方法来初始化bean,用属性注入即可,因为用属性注入才会放到三级缓存里,也就是 @Autowired pr 阅读全文
posted @ 2021-04-22 20:02 皇问天 阅读(292) 评论(0) 推荐(0) 编辑