摘要:
记住三句话 1. 语义上:==指的是内存引用一样。equals是指的是逻辑相等。逻辑相等具体的意思由编写者决定(即在引用类型中,"=="是比较两个引用是否指向堆内存里的同一个地址(同一个对象),而equals, equlas()方法的正确理解应该是:判断两个对象是否相等。那么判断对象相等的标尺又是什 阅读全文
摘要:
在看网上HashMap的resize()设计时,提到尾部遍历。 JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入。这样做的目的是:避免尾部遍历。 避免尾部遍历是为了避免在新列表插入数据时,遍历到队尾的位置。因为,直接插入的效率更高。 对resi 阅读全文
摘要:
HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 内部实现 HashMap的数据结构(字段) 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是 阅读全文
摘要:
场景:需要在主机写入之后,保证在备机一定能够读取到已经写入的数据,也就是需要主从架构下的强一致性。 主机与备机之间的物理延迟是不可控的,也是无法避免的。但是如果仅仅需要满足这种强一致性,是相对简单的事情:只需要在主机写入时,确认更新已经同步到备机之后,再返回写操作成功即可。主从数据库支持这种完全的同 阅读全文
摘要:
1. 数据库读写分离 读写分离,基本的原理就是让主数据库(master)处理事务性增、删、改操作(INSERT,DELETE,UPDATE),从数据库(slave)处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 主库负责写数据、读数据。读库仅负责读数据。每次 阅读全文
摘要:
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库:可以降 阅读全文