****
HashMap源码学习笔记 HashMap核心属性解析 DEFAULT_INITIAL_CAPACITY(默认初始容量) 默认初始容量是在构造HashMap时,不定义初始容量默认指定的大小,默认大小为1<<4也就是16; MAXIMUM_CAPACITY(最大容量) 最大容量是单个HashMap实例所能装载的最大容量,值为1<<30,也就是536,870,912个元素; DEFAULT_......
...
设计模式概念 0. 设计模式产生的背景 “设计模式”最开始是在建筑设计领域被提出的,其对城镇、邻里、住宅、花园和房间等进行设计的基本模式,提供了一些建筑设计中常见问题的解决方法。 而在之后,软件开发中的“设计模式”才被提出,并在1995年,多名作者合作出版的《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Soft......
RabbitMQ的交换机类型 fanout 路由到与该交换机绑定的所有队列中去 direct 路由到BindingKey和Routingkey相同的队列中去 topic 路由到BingdingKey和RoutingKey匹配的队列中去 匹配规则 RoutingKey是以“.”分隔的字符串 BindingKey也是以“.”分隔的字符串 BindingKey中可以使用“*”和“#”两个符号进行模糊匹配,“......
Java的线程安全和锁优化 线程安全 在Java中或者说在Jvm实现中,线程安全是一个相对的概念,某个对象在单独使用某个操作时是线程安全的,但在某些操作顺序却不是线程安全,需要额外的同步。该节将介绍线程安全的概念和在Java中的实现。 Java语言中的线程安全 不可变 final类型的基本类型,在初始化时,如果没有发生this引用逃逸正确地初始化,在以后的使用中值不会变更,是线程安全的;对象行为不会对自身状态变......
Java与线程模型 线程的实现 内核线程实现 定义:内核线程(Kernel-Level Thread,KLT):直接由操作系统内核支持的线程,由内核来完成线程切换 优势:实现依赖内核,实现简单 劣势:部分操作需要从用户态切换到内核态,开销较大 用户线程实现 定义 广义:一个线程不是内核线程,就可以认为是用户线程,在这个定义上讲,轻量级进程也是用户线程,但是轻量级进程的实现是建立在内核之上的......
Java线程池 什么是线程池? 线程池负责维护一个或多个线程的运行,让我们在实际的项目编码中不用自己编写维护线程的逻辑,简化编程,提高代码的鲁棒性,易读性。 线程池的创建方法 通过java.util.concurrent.ThreadPoolExecutor创建 构造方法 ThreadPoolExecutor构造方法 12345678910 public ThreadPoolExecutor(int co......
数据结构——列表(List) 什么是列表? Redis列表是一串字符串列表,按照插入顺序排序,可以从左边(头部)或者右边(尾部)进行数据的插入,一个列表最大支持2^32-1个元素插入。 常用命令 添加 从右边插入元素 1rpush key value [value ...] 从左边插入元素 1lpush key value [value ...] 向某个元素前/后插入元素 1linsert key befor......
Jvm调优的目的 为使得jvm虚拟机在不同硬件配置的机器上获取更好的性能,以及更好的稳定性,调整默认的jvm可以使得我们的程序在性能上有所提升。如: 如项目中有大量的新对象的寿命很短,可以适当把新生代的大小调整到合适的大小。 调整新生代进入老年代的阈值,使得避免新生代多次复制GC一些大概率会进入老年代的对象。 注意:JVM调优需要针对当前项目的特点进行调整,最好在调优前使用分析插件分析程序在运行时的内存......
Centos 的mysql安装 下载 1wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 安装 mysql 源 12yum localinstall mysql57-community-release-el7-11.noarch.rpmyum repolist enabled | grep "mysql.*-co......