在上一篇文章中,我们围绕volatile关键字做了很多阐述,主要介绍了volatile的用法.原理以及特性.在上一篇文章中,我提到过:volatile只能保证可见性和有序性,无法保证原子性.关于这部分内容,有读者阅读之后表示还是不是很理解,所以我再单独写一篇文章深入分析一下. volatile与有序性 在上一篇文章中我们提到过:volatile一个强大的功能,那就是他可以禁止指令重排优化.通过禁止指令重排优化,就可以保证代码程序会严格按照代码的先后顺序执行.那么volatile又是如何禁止指令重…
一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议. 2.HTTP协议作为TCP/IP模型中应用层的协议也不例外.HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS.如下图: 3.HTTP是一个应用层协议,由请求和响应构成,是一个标准的客…
在再有人问你Java内存模型是什么,就把这篇文章发给他.中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized.volatile.final.concurren包等. 在<深入理解Java虚拟机>中,有这样一段话: synchronized关键字在需要原子性.可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的.的确,大部分并发控制操作都能使用synchronized来完成. 海…
原创文章,转载请务注明出处 OOP三大基本特性 封装 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏. 继承 继承是指这样一种能力,它可以使用现有的类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展. 多态 多态指一个类实例的相同方法在不同情形有不同的表现形式.具体来说就是不同实现类对公共接口有不同的实现方式,但这些操作可以通过相同的方式(公共接口)予以调用. OOD七大原则 面向对象设计(OOD)有七大原则(是的,你没看错…
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会儿做不到,不过我们总归是在不断的学习,因此真的不必强迫自己把现在…
搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会儿做不到,不过我们总归是在不断的学习,因此真的不必强迫自己把现在遇到的一些知识点全部搞懂. 但是…
本文转自:https://blog.csdn.net/TestingGDR/article/details/81950593 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还正在探索和摸索怎么做,甚至还有一些多方面的技术上和非技术上的旧系统需要重构…… 本文将会从使用和实践两个视角,尝试对基于Web UI自动化测试做细致的分析和解读,给各位去思考…
前几天,发了一篇文章,介绍了一下JVM内存结构.Java内存模型以及Java对象模型之间的区别.有很多小伙伴反馈希望可以深入的讲解下每个知识点.Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识. 网上有很多关于Java内存模型的文章,在<深入理解Java虚拟机>和<Java并发编程的艺术>等书中也都有关于这个知识点的介绍.但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了.本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文…
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…
绝对和你在网上看到的CAP定理介绍不一样. CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想.2002 年,麻省理工学院的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了布鲁尔猜想的证明,使之成为分布式计算领域公认的一个定理. 对于设计分布式系统的架构师来说,CAP 是必须掌握的理论.…
一.真实案例 二.Redis分布式锁的正确姿势 据肥朝了解,很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了.关键是该工具类中还充斥着很多System.out.println();等语句.其实Redis分布式锁比较正确的姿势是采用redisson这个客户端工具.具体介绍可以搜索最大的同性交友网站github. 三.如何回答 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题So easy.我们来看 坦白说,如果你英文棒棒哒那么看英…
作者:zhangqh segmentfault.com/a/1190000012155267 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型.一个好的sql语句至少要达到range级别.杜绝出现all级别 key列,使用到的索引名.如果没有选择索引,值是NULL.可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数.该值是个预估值 extra列,详细…
前段时间,在和许久未见的老同学聊天时,突然被问到 http 协议到底是什么?脑海里面第一时间想起来的就是 request 请求.response 响应之类的词汇,但是这样讲他真的能知道是什么吗?我反问自己,于是找了相关的资料攻读一番.其实,大多数程序员经常都是在每天努力的搬砖,我相信,很少有人认真的研究过 http 协议到底是什么? 用官方的话来形容 http 协议又被称之为 超文本传输协议,是一种用于分布式.协作式和超媒体信息系统的应用层协议,它是网络互联的基础.我们通常知道 http 协议,…
我是搞控件开发的,经常被人问,所以把一些问题记录了下来!如果有人再问,直接把地址丢给他看. 一. 经常会有人抱怨Winform界面闪烁,下面有几个方法可以尽可能的避免出现闪烁 1.控件的使用尽量以纯色为主,尽量不使用背景图,或者把大图改成小图,或者图片不缩放绘制,或者直接用不透明的纯色背景色(Winform控件透明是伪透明,是通过截取父容器背景来实现的,所以效率比较低,而且有时候会有延迟.而且多个透明控件叠加的时候不能分层显示出各个控件的透明效果) 2.自定义控件中使用双缓冲. 3.窗体边框最好…
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3966794.html. 上章节讲解了讲解一个用eXosip2库实现的Demo 程序.Demo讲的是注册的过程,因为篇幅比较长,再分一节写.本节是上一节的继续,主要实现UAC用eXosip2库实现的Demo 程序.本节讲的比较全面,处理实现注册问题还添加了注销和刷新注册的过程.刷新相当于心跳的功能.注意这个函数eXosip_default_action()实现在si…
如果有人问你数据库的原理,叫他看这篇文章 http://blog.jobbole.com/100349/ 文章把知识链都给串起来,对数据库做一个概述. 合并排序 阵列.树和哈希表 B+树索引概述 数据库的全局概述 基于成本的优化概述,特别专注了联接运算 缓冲池管理概述 事务管理概述…
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件libGBT28181SipComponent.so实现Linux 32平台的UAS和UAC,因为该组件采用很多新的技术,所以采用该组件效率无疑是很高的.但是对于想学习SIP协议,或者想了解eXosip2开发流程的程序员,是不能从根本上了解学习的.因为所有的功能都封装在libGBT28181SipCo…
转载请注明来自souldak,微博:@evagle 怎么样才是合法的组合? 只要每一时刻保证左括号的数目>=右括号的数目即可. 直接递归就行,每次递归加一个括号,左括号只要还有就能加,右括号要保证加进去之后右括号总数不大于左括号总数 void insert_parentheses(char *res, int l, int r){ if(l==0&&r==0) cout<<res; else{ if(l>0){ res[n-l-r]='('; insert_pare…
TCP协议详解(理论篇) 2012-08-20      0个评论       作者:陈立龙 收藏    我要投稿 TCP协议详解(理论篇)   1.    与UDP不同的是,TCP提供了一种面向连接的.可靠的字节流服务.面向连接比较好理解,就是连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话.助于可靠性,TCP协议中涉及了诸多规则来保障通信链路的可靠性,总结起来,主要有以下几点:       (1)应用数据分割成TCP认为最适合发送的数据块.这部分是通过“MSS”(最大数据包长度…
前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ 目录 本篇文章主要包括以下内容: HashMap 的存储结构 常用变量说明,如加载因子等 HashMap 的四个构造函数 tableSizeFor()方法及作用 put()方法详解 hash()方法,以及避免哈希碰撞的原理 resize()扩容机制及原理 get()方法 为什么HashMap链表会…
原文链接: 测试小姐姐问我 gRPC 怎么用,我直接把这篇文章甩给了她 上篇文章 gRPC,爆赞 直接爆了,内容主要包括:简单的 gRPC 服务,流处理模式,验证器,Token 认证和证书认证. 在多个平台的阅读量都创了新高,在 oschina 更是获得了首页推荐,阅读量到了 1w+,这已经是我单篇阅读的高峰了. 看来只要用心写还是有收获的. 这篇咱们还是从实战出发,主要介绍 gRPC 的发布订阅模式,REST 接口和超时控制. 相关代码我会都上传到 GitHub,感兴趣的小伙伴可以去查看或下载…
正文  -  开始了, 直接扯淡 以下都是自己面试中遇到的常见的问题.如有不妥的地方就当见笑了. 哈哈 1. 谈谈你们服务器的架构吧. 分析: 假如这是第一个问题, 你可以走了. 可能各方面原因他不想要你. 或者其它意外已经有人更适合了. 或者只是为了学一点东西.哈哈.一般面试游戏服务器开发的时候,这方面一定会问的. 关于游戏服务器架构, 需要自己努力积累是硬功夫.没有个100页doc难搞下来.且不同公司架构还是很不一样. 只是为了应对面试,可以参照 MMORPG服务器架构  http://ww…
saiku的前段团队 在UI设计方面很专业.但是兼容性差到让人无语.不知道为什么,是不是不给钱,人家故意黑它. 一直忙别的工作,现在整理一些saiku相关网站,百度不到的,google又要FQ.看个合法网站也这么麻烦,那么 我来造福你们了,凡人们.我是不是应该出本书,saiku设计与实践.不错,看有人出版么? 乱乱的读写:http://blog.analytical-labs.com/tagged/bi saiku福音,wiki:http://wiki.meteorite.bi/display/…
http使用面向连接的TCP作为传输层协议.http本身无连接. 请求报文 CRLF是回车换行     方法为GET的请求报文     方法为POST的请求报文     方法 OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法.用’*’来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作. HEAD:与GET方法一样,都是向服务器发出指定资源的请求.只不过服务器将不传回资源的本文部分.它的好处在于,使用这个方法可以在不必传输全部内容的情况下,…
菇凉提问: 做FPGA开发多年,每次菇凉问我,什么是FPGA,我,我,我,不知道如何说起,难以回答. FPGA是一种器件.其英文名 feild programable gate array . 通俗来说,是一种功能强大似乎无所不能的器件.通常用于通信.网络.图像处理.工业控制等不同领域的器件. 一直强调,逻辑设计不是程序员,因为在设计人员来看,写逻辑只是FPGA开发中最不重要的工作.所以不需要有什么代码(姑且这么称呼)优劣之争. 是否纠结? 从来没遇到哪个同行,纠结过VHDL和Verilog孰优…
pb杀手 我先让pbkiller做个自我介绍 pbkiller:我是一位专业的争对 protobuf 问题训练有素的杀手,我可以为您轻松搞定 protobuf 在 Cocos Creaotr 开发中的诸多问题,并且可以让你随意折磨曾经折磨过你的 protbuf 问题. 一.臣服 我 pbkiller 最厉害的技能是可以快速逮捕 proto 文件,让他们臣服在主人脚下,不论是在浏览器.手机.桌面环境上. 1. 呼唤 只需要低声轻吟我的名字我就会出现在你的身边,对于我的主人我是非常温柔的. let…
Idea快速入门指南 1.安装 1.1.安装 我们使用的是最新的2017.3.4版本: 双击打开, 选择一个目录,最好不要中文和空格: 然后选择桌面快捷方式,请选择64位: 然后选择安装: 开始安装: 然后勾选安装后运行,Finish: 1.2.首次配置 然后是UI界面选择,有白色和黑色两款,总有一款适合你: 把不需要的组件禁用: 插件暂时不选择安装,以后有需求还可以来安装: 然后进入运行界面: 激活Idea: 这里有三种激活方式: 第一种:购买正版用户(如果有资金最好选择正版) 第二种:激活码…
application\common\fun\Field.php 你可以复制一份 也可以直接改 直接改记得加锁 不然升级就覆盖了 我们把   public function list_filter($mid=0){改为为下面的就可以了 function list_filter($mid=0,$dirname=''){ $array=\app\common\util\Field_filter::get_field($mid,$dirname); foreach($array AS $name=>$…
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)SSL证书编程实例.(6)中间人欺骗实例.(7)其它.本文作者同时有一个用SSL协议编写的作品叫SSLPROXY,感兴趣的读者可以从作者主页http://www.138soft.org下载. 一:SSL协议是什么?  SSL是一种加密传输协议.引用网上一段话:SSL 是Secure socket La…