在再有人问你Java内存模型是什么,就把这篇文章发给他.中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized.volatile.final.concurren包等. 在<深入理解Java虚拟机>中,有这样一段话: synchronized关键字在需要原子性.可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的.的确,大部分并发控制操作都能使用synchronized来完成. 海…
一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议. 2.HTTP协议作为TCP/IP模型中应用层的协议也不例外.HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS.如下图: 3.HTTP是一个应用层协议,由请求和响应构成,是一个标准的客…
CAP是Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)的缩写.在学习redis过程中看到这个名词,查找各位大佬的文章发现这篇讲得很简单清晰,文章来自公众号:codewill. CAP 定理(CAP theorem)又被称作布鲁尔定理,是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想.2002 年,麻省理工学院的赛斯·吉尔伯特(Seth Gil…
前言 提到ZooKeeper,相信大家都不会陌生.Dubbo,Kafka,Hadoop等等项目里都能看到它的影子.但是你真的了解 ZooKeeper 吗?如果面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢? 我会用两个篇幅介绍ZooKeeper ,第一篇是概念性的认识,这篇你会得到 ZooKeeper 是什么,ZooKeeper 设计的目标,ZooKeeper 能做什么和ZooKeeper 基本的概念.第二篇我会从实战出发,安装ZooKeeper,写一些ZooKeep…
本文转自:https://blog.csdn.net/TestingGDR/article/details/81950593 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还正在探索和摸索怎么做,甚至还有一些多方面的技术上和非技术上的旧系统需要重构…… 本文将会从使用和实践两个视角,尝试对基于Web UI自动化测试做细致的分析和解读,给各位去思考…
绝对和你在网上看到的CAP定理介绍不一样. CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想.2002 年,麻省理工学院的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了布鲁尔猜想的证明,使之成为分布式计算领域公认的一个定理. 对于设计分布式系统的架构师来说,CAP 是必须掌握的理论.…
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会儿做不到,不过我们总归是在不断的学习,因此真的不必强迫自己把现在…
搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会儿做不到,不过我们总归是在不断的学习,因此真的不必强迫自己把现在遇到的一些知识点全部搞懂. 但是…
前几天,发了一篇文章,介绍了一下JVM内存结构.Java内存模型以及Java对象模型之间的区别.有很多小伙伴反馈希望可以深入的讲解下每个知识点.Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识. 网上有很多关于Java内存模型的文章,在<深入理解Java虚拟机>和<Java并发编程的艺术>等书中也都有关于这个知识点的介绍.但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了.本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文…
前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ 目录 本篇文章主要包括以下内容: HashMap 的存储结构 常用变量说明,如加载因子等 HashMap 的四个构造函数 tableSizeFor()方法及作用 put()方法详解 hash()方法,以及避免哈希碰撞的原理 resize()扩容机制及原理 get()方法 为什么HashMap链表会…
在上一篇文章中,我们围绕volatile关键字做了很多阐述,主要介绍了volatile的用法.原理以及特性.在上一篇文章中,我提到过:volatile只能保证可见性和有序性,无法保证原子性.关于这部分内容,有读者阅读之后表示还是不是很理解,所以我再单独写一篇文章深入分析一下. volatile与有序性 在上一篇文章中我们提到过:volatile一个强大的功能,那就是他可以禁止指令重排优化.通过禁止指令重排优化,就可以保证代码程序会严格按照代码的先后顺序执行.那么volatile又是如何禁止指令重…
废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度. 可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下. JFinal 是一个基于Java 语言的极速 Web 开发框架,用起来非常爽,谁用谁知道.EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干的特点,用起来非常爽,谁用谁知道. JFinal 本身已经集成了 EhCache 这个缓存插件,但默认是没有启用的.那怎么启用呢? 请随我来. 01.在 pom.xml 中…
01.前言 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了.对于我们开发者来说,如何将 Emoji 存入 MySql 数据库或者取出来,就变成了一种必须掌握的技能了. Emoji 是一种图形符号,能够很直观地反应出某种文字含义.它让我想起远古时代的象形文字. Emoji 其实是一个日语词(えもじ),E 表示"絵",moji 表示"文字":连在一起就是"絵文字…
CAP理论被很多人拿来作为分布式系统设计的金律,然而感觉大家对CAP这三个属性的认识却存在不少误区.从CAP的证明中可以看出来,这个理论的成立是需要很明确的对C.A.P三个概念进行界定的前提下的.在本文中笔者希望可以对论文和一些参考资料进行总结并附带一些思考. 一.什么是CAP理论 CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency).可用性(Availability).分区容错(pa…
大约在五六年前,第一次接触到了当时已经是hot topic的NoSql.不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉.但是印象深刻的是这么一张图片(后来google到图片来自这里):     这张图片是讲数据库(包括传统的关系型数据库和NOSQL)与CAP理论的关系.由于并NoSql并没有实践经验,也没有去深入了解,对于CAP理论更是一知半解.因此,为什么某一款数据库被划分到哪一个阵营,并不清楚.     工作之后对MongoDB使用得比较多,…
大约在五六年前,第一次接触到了当时已经是hot topic的NoSql.不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉.但是印象深刻的是这么一张图片(后来google到图片来自这里): 这张图片是讲数据库(包括传统的关系型数据库和NOSQL)与CAP理论的关系.由于并NoSql并没有实践经验,也没有去深入了解,对于CAP理论更是一知半解.因此,为什么某一款数据库被划分到哪一个阵营,并不清楚. 工作之后对MongoDB使用得比较多,有了一定的了解,…
1.ACID是RDBMS的理论基石:      A原子(Atomiclty )事务原子性:      C一致(Consistency)插入一张表数据,会 影响其它(索引/其它表)等一致.      I 隔离性(ioslation)事务独立,封闭:隔离性强度:      D持久性(Durabilty)数据永存.   对应分布式数据库, 某些业务不需全部一致性事务,可采用弱化其中之一,提供其它响应速度等. 理解: A  事务原子性,指对一个事务要么完全提交要么完全回滚,保证提交成功的给数据库的和外部…
add by zhj: CAP理论可以简单的理解为一致性,可用性,可分区性,这三者没有办法同时满足.我们使用的关系型数据库,比如MySQL,Postgresql是CA类型, 而Redis,MongoDB是AP类型 原文:http://blog.csdn.net/chen77716/article/details/30635543 CAP理论在互联网界有着广泛的知名度,知识稍微宽泛一点的工程师都会把其作为衡量系统设计的准则.大家都非常清楚地理解了CAP:任何分布式系统在可用性.一致性.分区容错性方…
关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11,几亿大军的点击造成在某一时刻的并发量是很高的,传统的关系型数据库肯定已经是不堪重负了,如Oracle的Session数量推荐的才只有500. 2.高效率存储海量数据 大数据时代,数据量已经不是用GB.TB来衡量了,而是EB.ZB了,面对这海量的数据,如何高效率的存储这些数据,关系型数据库无法解决这个…
CAP理论被很多人拿来作为分布式系统设计的金律,然而感觉大家对CAP这三个属性的认识却存在不少误区,那么什么是CAP理论呢?CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency).可用性(Availability).分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的.之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实…
http://blog.sina.com.cn/s/blog_57f61b490101a8ca.html 最近有人讨论到swift副本数是否能够调整,3副本成本过高,如果改成2副本怎么样?多聊了几句以后发现不少人可能都是望文生义,简单的认为副本数只是多一个少一个Copy的问题,并不了解背后的理论依据.所以想写个简单的介绍,普及分布式系统设计的一些基础知识点.这个是按傻瓜版写的,已经知道的同学请自动无视. 不同于传统的集中式存储,对于分布式存储系统来说,因为自身的复杂性,副本数并非简单拍脑门而来,…
先解释一下软件编程中常见的一些概念: 抽象先于具象.这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存在.当那个前体存在分化成具象存在之后,前体存在就退化为背景,成为一种抽象. 结构是关联与互动的复合体. 接口是结构的耦合点. 架构是从无结构到有结构的过程. 重构是从旧结构到新结构的过程. 也就是说,结构是架构的结果,架构是结构化的过程. 常听人说语言是工具,这是错误的.语言不是工具,但它和工具都是大脑的延伸.语言是介于智力与工具之间的衔接物. 就好比,人类语言是人与人之间的沟通媒…
本文部分来自参考资料!!半原创 概述 介绍CAP理论,并简单地证明了三存二的定论. CAP 理论 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标.分别为 : Consistency (一致性) Availability (可用性) Partition tolerance (分区容错性) 这三个元素不会同时满足.下图显示了现在许多分布式事务的实现具备的两方面的功能 . 下面我们将介绍这三个元素,我们先来看一下一个简单的分布式系统. 客户端连接着两台服务器,G…
经历过技术面试的小伙伴想必对这个两个概念已经再熟悉不过了! 我当年参加面试的时候,不夸张地说,只要问到分布式相关的内容,面试官几乎是必定会问这两个分布式相关的理论. 并且,这两个理论也可以说是小伙伴们学习分布式相关内容的基础了! 因此,小伙伴们非常非常有必要将这理论搞懂,并且能够用自己的理解给别人讲出来. 这篇文章我会站在自己的角度对这两个概念进行解读! CAP理论 CAP 理论/定理起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因…
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis数据结构 – strings9.redis数据结构 – lists10.redis数据结构 – 集合11.redis数据结构 – 有序集合12.redis数据结构 – 哈希13.聊聊…
问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐.想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了同一张车票.假如说售票系统没有进行一致性的保障,两人都购票成功了.而在检票口检票的时候,其中一…
自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度.NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据. CAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条: 数据一致性(C),等同于所有节点访问同一份最新的数据副本: 对数据更新具备高可用性(A): 能容忍网络分区(P). CAP理论的表述很好地服务了它的目的,即开阔设计师的思路,在多样化的取舍方案下设计出多样化的系统.在过去的十几年里确实涌现了不计其数…
强一致性(Consistency):  更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据完全一致. 可用性(Availability):读和写操作都能成功. 分区容错性(Partition Tolerance):在出现网络故障导致分布式节点间不能通信时,系统能否继续服务. 转自360doc Chapter 1: “Remembrance Inc” Your new venture : Last night when your spouse appreciated you on r…
一 CAP理论简述 CAP (Consistency, Availability, Partition  Tolerance,) 理论是NoSQL数据库管理系统构建的基础.     强一致性:等同于所有节点访问同一份最新的数据副本   可用性:每一个操作总是能够在一定的时间内返回结果,这里需要注意的是"一定时间内"和"返回结果".一定时间指的是,在可以容忍的范围内返回结果,结果可以是成功或者失败.   分区容错性:理解为在存在网络分区的情况下,仍然可以接受请求(满足…
分布式系统之CAP理论杂记 http://www.cnblogs.com/highriver/archive/2011/09/15/2176833.html 分布式系统的CAP理论: 理论首先把分布式系统中的三个特性进行了如下归纳: ● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值. ● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求.(可用性不仅包括读,还有写) ● 分区容忍性(P):集群中的某些节点在无法联系后,集群整体是否还能继续进行服务…