05 2018 档案
摘要:1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件
阅读全文
摘要:在linux的只用过程中,总是避免不了排序问题。比如,topN问题。linux提供了sort排序命令,支持常用的排序功能。 常用参数 sort命令支持很多参数,常用参数如下: 常用用法举例 1.默认排序 默认情况下,sort命令,以字母序进行文本排序。如下: 2.数字排序 如果想对数字进行排序,可以
阅读全文
摘要:du命令是检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小。参数的不同组合,可以更快的提高工作效率,以下仅列出了经常使用到的参数,如需更详细的信息,请用man du命令来获得。 1.命令格式 du [选项][文件] 2.命令功能 显示每个文件和目录的磁盘使用空间。 3.命令参数 实例 实例
阅读全文
摘要:进入正题,在周二面试时,一面的面试官有问到 HashMap 是否是线程安全的,如何在线程安全的前提下使用 HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap 和 synchronized Map 的原理和区别。当时有些紧张只是简单说了下HashMap不是
阅读全文
摘要:原因:tomcat下的应用跑了一段时间,应用访问特别慢 分析: [root@yidong bin]# ps -ef | grep javaroot 309 32447 20 10:16 pts/2 00:00:32 /usr/java/jdk1.6.0_37/bin/java -Djava.util
阅读全文
摘要:public class TestMain { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.ad
阅读全文
摘要:volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v
阅读全文
摘要:也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述java.util.concurrent.locks包下常用的有哪些类和接口,最后讨论以下一些关于锁的概念方面的东西
阅读全文
摘要:在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如
阅读全文
摘要:还有一种方式,在t3开始前join t2,在t2开始前join t1
阅读全文
摘要:B+Tree的定义 B+Tree是B树的变种,有着比B树更高的查询性能,来看下m阶B+Tree特征: 1、有m个子树的节点包含有m个元素(B-Tree中是m-1) 2、根节点和分支节点中不保存数据,只用于索引,所有数据都保存在叶子节点中。 3、所有分支节点和根节点都同时存在于子节点中,在子节点元素中
阅读全文
摘要:B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。 磁盘IO与预读 磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,大概9ms左右。这个成本是访问内存的十万
阅读全文
摘要:一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意
阅读全文
摘要:写在前面 本文是针对Java 1.8的源代码进行解析的,可能会和其他版本有所出入。 全局变量 1. 默认容量 2. 空的对象数组 3.默认的空数组 4.存放数据的数组的缓存变量,不可序列化 transient Object[] elementData; transient Object[] elem
阅读全文