2019-10-29 16:26
上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于“hashCode() 和 equals() 之间的关系?”的面试题,本篇来解析一下这道基础面试题。...
2019-10-29 16:56
上几次说了redis的主从,哨兵,集群配置,但是内部的选举一直没说,先来简单说一下选举吧。
集群选举
redis cluster节点间采取gossip协议进行通信,也就是说,在每一个节点间,无论主节点还是从节点,他们之间都是存在相互通信的。例如你的redis端口号是6379,那么你的gossip协议端口号就是16379。
gossip协议包含多种消息,包括ping,pong,meet,fail等等。
ping:每个节点都会频繁给其他节点发送ping,其中包含自己的状态还有自己维护的集群元数据,互相通过ping交换元 数据;
...
2019-10-29 16:47
我们时常会判断一个元素是否相等重复,可以用equals方法。
每增加一个元素,我们就可以通过equals方法判断集合中的每一个元素是否重复,但是如果集合中有10000个元素了,我们每添加一个元素的时候,就需要进行10000此的equals方法的调用,显示效率非常的低下了。
于是基于这种问题,java集合的设计者采用了哈希表来实现。
哈希表也称为散列算法,是依据数据特定算法产生的结果直接指定到一块地址上,这个结果由hashCode方法产生。
这样一来,当集合每添加一个新的元素的时候,就可以通过hashCode方法直接定位到该存放的物理位置上,而不需要大量的equals板的比较。
...
2019-10-29 16:15
(一)图像特征匹配--SIFT
1.1 SIFT背景简介
SIFT算法是David Lowe在1999年提出的局部特征描述子,并在2004年深入发展和完善。
SIFT算法是在尺度空间进行特征检测并确定关键点的位置和关键点所在的尺度。
该关键点方向特征选取该点邻域梯度的主方向,以便实现算子对尺度和方向的无关性。
1.2 SIFT特征向量生成步骤
一幅图像SIFT特征向量的生成步骤主要有如下四步:
(1)检测尺度空间极值点,初步确定关键点的位置和所在尺度; [初步找出关键点群]
...
2019-10-29 16:18
菜菜哥,我最近需要做一个项目,老大让我用微服务的方式来做...
2019-10-29 15:27
在介绍StreamWriter之前,我们首先来了解一下它的父类TextWriter。
一、TextWriter
1、TextWriter的构造函数和常用属性方法
下面是TextWriter的构造函数:
和所有抽象类一样,该类不能直接实例化,它有两个构造函数。
特别说一下第二个构造函数,大家发现这个构造函数中有一个类型IFomatProvider类型的参数,这个是什么东东呢?
IFomatProvider接口的简单介绍
其实,IFomatProvider接口从字面上就能理解了,一个格式化的提供者。大家记得我们常用的string.Format("{0:P}",data);么?IFomatProvider在这里被隐式调用了。
...
2019-10-29 15:26
前面的几篇文章我们聊了基于Metrics的监控Prometheus,利用Prometheus和Grafana可以全方位监控你的服务器及应用的性能指标,在出现异常时利用Alertmanager告警及时通知运维处理。今天我们聊聊基于Trace的分布式跟踪系统 - SkyWalking...
2019-10-29 15:54
不好意思,最近刷小视频刷的有点上头
看到这图就不自觉的要来一句:"卧槽,无情"
好了,我要开始正经了
JAVA 8 已经推出有一段时间了, 相比之前, 我们操作集合的方式应该是这样?
这样?
或者是这样?
OK, 现在相信你看到这样的遍历方式可能也会吐槽一番
Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等本篇只举例list和map, 为了便于理解, 我们先创建一个数据类
...
2019-10-29 15:05
我们添加点、线、面来实现图形的编辑需要使用Geometry对象类。...
2019-10-29 15:57
什么是单点登录简单点说就是公司有A,B两个系统,我登录了A系统之后再跳转到B系统可以直接访问,而不需要再次登录B系统....
2019-10-29 15:22
前言
好久没有更新spring Boot 这个项目了。最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来。刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架,将文件上传和下载整理进来。
配置
在application.properties 中增加上传文件存放的路径配置
#文件上传目录
file.upload.url=E:/test
controller 层
上传文件和下载文件都比较简单,我们就直接在controller层来编写。也不用在pom.xml 中增加什么依赖。所以直接上代码。
...
2019-10-29 14:38
写在前面:(阅读本文前需要了解KMP算法的基本思路。另外,本着大道至简的思想,本文的所有例子都会做从头到尾的讲解)...
2019-10-29 14:10
1.首先我们先在urls.py定义CBV的路由匹配。
FBV的路由匹配:
2.然后,在views.py创建一名为MyReg的类:
注意:该类必须继续View类,且方法名必须与请求方式相同(后面会详解)
3.回到第一步的路由匹配可以看到MyReg.as_view(),直接调用了as_view函数。那么现在进去as_view函数看看里面运行了什么?
4.由上面的分析可以知道执行as_view函数时,返回该函数下嵌套的一个叫view函数的内存地址,这样,urls.py里的url(r'^my_reg/', views.MyReg.as_view())就相当于url(r'^my_reg/', views.view)了,这样跟我们之前的FBV就没区别了,当url匹配成功,就会执行view函数。
...
2019-10-29 11:08
在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx' 或者 ModuleNotFoundError: No module named 'xxx' 。
导入失败问题,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件),另一种是导入三方库。本文主要讨论第二种情况,今后有机会,我们再详细讨论其它的相关话题。
解决导入 Python 库失败的问题,其实关键是在运行环境中装上缺失的库(注意是否是虚拟环境),或者使用恰当的替代方案。这个问题又分为三种情况:
...