2020年8月15日
摘要: 生产者消费者的实际使用 大家都有使用过分布式消息队列,比如 ActiveMQ、 kafka、RabbitMQ 等等,消息队列的是有可以使得程序之 间实现解耦,提升程序响应的效率。 如果我们把多线程环境比作是分布式的话,那么线程与线 程之间是不是也可以使用这种消息队列的方式进行数据通 信和解耦呢? 阻 阅读全文
posted @ 2020-08-15 16:36 会说话的丶猫 阅读(189) 评论(0) 推荐(0) 编辑
  2020年8月12日
摘要: 前言: 之前的文章中学习了J.U.C中aqs的底层实现原理,这篇文学习一下J.U.C中提供的一些线程同步工具类。 Condition 在前面学习 synchronized 的时候,有讲到 wait/notify 的基本使用,结合 synchronized 可以实现对线程的通信。既然 J.U.C 里面 阅读全文
posted @ 2020-08-12 16:08 会说话的丶猫 阅读(162) 评论(0) 推荐(0) 编辑
  2020年8月11日
摘要: 一、HashMap底层数据结构 JDK1.7及之前:数组+链表 JDK1.8:数组+链表+红黑树 HashMap中实际是维护了一个Node数组,用来存储数据,下面看一下Node源码: static class Node<K,V> implements Map.Entry<K,V> { final i 阅读全文
posted @ 2020-08-11 14:26 会说话的丶猫 阅读(662) 评论(0) 推荐(0) 编辑
摘要: equals()和HashCode()深入理解以及Hash算法原理 1.深入理解equals(): 在我的一篇博客“==”和.equals()的区别中向读者提出提醒: Object类中的equals方法和“==”是一样的,没有区别,即俩个对象的比较是比较他们的栈内存中存储的内存地址。而String类 阅读全文
posted @ 2020-08-11 10:46 会说话的丶猫 阅读(155) 评论(0) 推荐(0) 编辑
  2020年8月9日
摘要: Lock Lock 在 J.U.C 中是最核心的组件,前面学习 synchronized 的时候说过,锁最重要的特性就是解决并发安全问题。为什么要以 Lock 作为切入点呢?如果有同学看过 J.U.C 包中的所有组件,一定会发现绝大部分的组件都有用到了 Lock。所以通过 Lock 作为切入点使得在 阅读全文
posted @ 2020-08-09 16:22 会说话的丶猫 阅读(355) 评论(0) 推荐(0) 编辑
  2020年8月6日
摘要: 前言 这段时间在学习java并发编程这方面的知识,目前正在看《java并发编程之美》,书写的感觉蛮不错的,很细致,个人觉得少了点实际应用场景的案例,但总体来说各方面的知识点写的很详细,从原理到demo都会呈现给读者,此外还看了咕咆的一些教学视屏,里面的讲解让我深有体会,赶紧开个学习专题用以记录自己学 阅读全文
posted @ 2020-08-06 10:42 会说话的丶猫 阅读(144) 评论(0) 推荐(0) 编辑
  2020年8月4日
摘要: synchronized 的基本认识 在多线程并发编程中 synchronized 一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着 Java SE 1.6 对synchronized 进行了各种优化之后,有些情况下它就并不那么重,Java SE 1.6 中为了减少获得锁和释放锁带来的性 能 阅读全文
posted @ 2020-08-04 23:03 会说话的丶猫 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: java内部类作用 为什么在Java中需要内部类?总结一下主要有以下四点: 1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。内部类使得多继承的解决方案变得完整, 2.方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。 3.方便编 阅读全文
posted @ 2020-08-04 11:45 会说话的丶猫 阅读(445) 评论(0) 推荐(0) 编辑
  2020年8月2日
摘要: 1 优化思路 作为架构师或者开发人员,说到数据库性能优化,你的思路是什么样的?或者具体一点,如果在面试的时候遇到这个问题:你会从哪些维度来优化数据库,你会怎么回答? 大部分时候想要实现的目标是让我们的查询更快。一个查询的动作又是由很多个环节组成的,每个环节都会消耗时间,我们要减少查询所消耗的时间,就 阅读全文
posted @ 2020-08-02 23:11 会说话的丶猫 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 前言: 对于并发编程这块知识点的掌控一直不是很好,基本都是停留在使用synchronized阶段,于是决定开一博客专题记录知识点。 线程的应用 在 Java 中,有多种方式来实现多线程。继承 Thread 类、 实现 Runnable 接口、使用 ExecutorService、Callable、 阅读全文
posted @ 2020-08-02 15:30 会说话的丶猫 阅读(177) 评论(0) 推荐(0) 编辑