阈值

Java HashMap源码详解

夙愿已清 提交于 2020-04-08 01:30:17
Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 HashMap 组成结构 1.2.1 Hashmap底层数据结构 2.HashMap源码解析 2.1 HashMap属性源码解析 2.1.1 HashMap中的静态常量 2.1.2 HashMap中的属性 2.1.2 HashMap中的存储结点 2.1.3 Hash表 2.2 方法源码分析 2.2.1 构造方法分析 2.2.2 Put(K key,V value) 待续... 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做 Entry ,有着key与value两个基本属性以及有其他的包含其他结点位置信息的属性 通过HashMap我们可以存储键值对,并且可以在较短的时间复杂度内, 1.1.2 HashMap继承图 HashMap通过继承 AbstractMap 实现了 Map 接口,且本身也实现了 Map 接口 在接口实现关系上来看为多余操作 但有一点要注意,在使用 反射获取实现接口 时,如果不是显示实现某接口而是通过继承来实现该接口,则不会获取该接口类型,这一点在使用

深度探索JFR

[亡魂溺海] 提交于 2020-04-07 19:54:35
2. JAVA 应用相关 2.4. Java Monitor 同步锁相关 主要是三种 Event: 当进入同步块,尝试获取锁的时候,产生 JavaMonitorEnter Event;当调用 Object.wait() 进入等待时,会产生 JavaMonitorWait Event;当 锁升级(另一种说法是锁膨胀)时,产生 JavaMonitorWait Event。 下面我从网上看到的这张图,有助于理解这三种事件: JavaMonitorEnter(Java Monitor Blocked):进入 Java Monitor Event。当需要进入同步代码时(字节码 monitorenter),会产生这个 Event。在 default.jfc 中默认为启用的,并且会追踪堆栈,阈值是 20ms;采集的信息包括:开始时间,持续时间,结束时间,线程,Monitor Address,Monitor Class,之前持有这个 Monitor 的线程。 JavaMonitorInflated(Java Monitor Inflated):发生锁升级的时候的 Event。在 default.jfc 中默认为启用的,并且会追踪堆栈,阈值是 20ms;采集的信息包括:开始时间,持续时间,结束时间,线程,Monitor Address,Monitor Class,锁升级原因

字节二面问我计算机网络的拥塞控制问题,清明节假,我终于搞明白了...

巧了我就是萌 提交于 2020-04-06 21:31:19
多点头发,少点代码 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 本来想先更新TCP的基础和TCP可靠性等问题的,但是被你们暗示了,就先更流量控制和拥塞控制了。希望龙叔讲的你能搞清楚,如果有不清楚的,可以加龙叔微信一起探讨。 龙叔的号暂时还没开通留言功能(大家要是有留言号,可以贡献一个出来喔😆),大家有什么问题就直接后台回复 龙叔 即可加龙叔微信,享受一对一技术探讨(只要是问我问题的都会回复大家,基本是在晚上十点之后和周末,做好不会秒回的心理准备) 流量控制 讲流量控制之前先花简短的话语絮叨下TCP基础知识,详细知识细节后面会出文章一一道来。 TCP是一种面向连接、保证可靠性、流式传输服务。 面向连接 就是建立链接,也就是面试常问的三次挥手建立链接,四次挥手断开链接。 保证可靠性 到是很好理解,就是你发送的数据尽最大可能保证让接收端接收到。 流式传输 就是传输的数据是以字节流的形式发送和接受(不要硬是和我说,什么字节流传输?明明物理层上都是波信号,这,抱拳。) TCP传输数据都是建立链接之后才进行传输,传输的时候为保证可靠性,也是采用确认应答机制。所谓确认应答机制就是发送数据之后必须收到确认消息,才算一次有效传输。 举个简单栗子,就是你和别人交流之前必须叫别人一声(这位先生你好

清明节假,终于搞明白了网络拥塞控制问题

久未见 提交于 2020-04-06 12:15:03
多点头发,少点代码 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 本来想先更新TCP的基础和TCP可靠性等问题的,但是被你们暗示了,就先更流量控制和拥塞控制了。希望龙叔讲的你能搞清楚,如果有不清楚的,可以加龙叔微信一起探讨。 龙叔的号暂时还没开通留言功能(大家要是有留言号,可以贡献一个出来喔😆),大家有什么问题就直接后台回复 龙叔 即可加龙叔微信,享受一对一技术探讨(只要是问我问题的都会回复大家,基本是在晚上十点之后和周末,做好不会秒回的心理准备) 流量控制 讲流量控制之前先花简短的话语絮叨下TCP基础知识,详细知识细节后面会出文章一一道来。 TCP是一种面向连接、保证可靠性、流式传输服务。 面向连接 就是建立链接,也就是面试常问的三次挥手建立链接,四次挥手断开链接。 保证可靠性 到是很好理解,就是你发送的数据尽最大可能保证让接收端接收到。 流式传输 就是传输的数据是以字节流的形式发送和接受(不要硬是和我说,什么字节流传输?明明物理层上都是波信号,这,抱拳。) TCP传输数据都是建立链接之后才进行传输,传输的时候为保证可靠性,也是采用确认应答机制。所谓确认应答机制就是发送数据之后必须收到确认消息,才算一次有效传输。 举个简单栗子,就是你和别人交流之前必须叫别人一声(这位先生你好

边界提取_MATLAB

▼魔方 西西 提交于 2020-04-06 08:05:06
下面是利用腐蚀算法进行边界提取,即原图减去腐蚀后的图得到边界 1 f=imread('D:/picture/ZiXia.jpg'); 2 figure; 3 subplot(2,2,1); 4 imshow(f); 5 title('原图'); 6 f=rgb2gray(f); 7 f=im2bw(f);%图像二值化 8 subplot(2,2,2); 9 imshow(f); 10 title('人脸二值图像'); 11 se=strel('square',3);%选取3*3正方形结构元素 12 Ie=imerode(f,se);%对原图像进行腐蚀, 13 Iout1=f-Ie;%原图像减去腐蚀结果 14 subplot(2,2,3); 15 imshow(Iout1); 16 title('直接边界轮廓提取') 17 Iout2=bwperim(f,4);%用bwperim提取边界 18 subplot(2,2,4); 19 imshow(Iout2); 20 title('用bwperim提取边界') 可以看到两种方法得到的提取结果都很不错。 下面介绍几个函数 函数一:im2bw im2bw:基于阈值,将图像转变成二进制图像。 BW = im2bw(I, level):将灰度图像I转变成二级制图像BW level:阈值等级,取值范围【0,1】 BW: 逻辑型

Mysql骚操作:优化大分页查询

北慕城南 提交于 2020-04-03 18:40:16
背景 系统结构如上图。经过排查是因为 系统B拉取数据时间太长导致的推送超时。 系统B拉取数据的方法是根据_tiemstamp(数据操作时间)分页查询系统A的接口,即: 1SELECT 字段名2FROM 表名3WHERE _timestamp >= beginTime AND _timestamp <= endTime 4LIMIT n, m; 由于该数据是从其他数据源中导入的,所以_timestamp这个字段值几乎相同,这就导致了在我们的查询范围内存在大约 150万 的数据。一般遇到这种情况,首先想到的就是 是否需要给_timestamp添加索引 ,这张表上是存在_timestamp索引的。那么为什么还会出现这个问题呢?这就要从分页查询本身说起了。 分页查询的性能瓶颈 B+树简述 首先我们要了解InnoDB存储引擎中的B+数索引。这里我简单总结一下: 上图是一颗B+树,通过观察我们可以发现它的一些特点:   1.每个节点中子节点个个数不能少于m/2个,不能大于m个(B+树是一颗m叉树,图中m=3)   2.根节点的节点个数可以超过m/2个,这是一个例外 上述两点特性是为了保证B+树的查询效率。 节点数超过m越多,在总节点数相同的情况下,树的高度h就越小,此时m叉数就会向链表退化(O(logn)->O(n))。   节点数小于m/2越多,在总节点数相同的情况下,树的高度h就越高

如何使用虹软人脸识别门禁应用套件

こ雲淡風輕ζ 提交于 2020-04-02 18:45:52
导语: 虹软ArcFaceGo智慧门禁应用套件包括门禁软件APK、PC管理客户端和云端服务三部分,最快3分钟即可完成智慧门禁系统的部署,帮助中小型企业降低开发成本,加快实现产品智能化落地。本文来自开发者投稿。 应公司需求,最近开发了一款有考勤功能的人脸门禁应用。 相比传统密码门禁操作不便,指纹和刷卡门禁容易冒用和代打卡,刷脸门禁采用生物识别技术,必须本人刷脸才能起效,在原有门禁的基础上的改造也比较容易。 刷脸门禁虽好,然而最大问题是,我并没有从零开发一款人脸门禁的能力。多方研究之下,我选择了虹软ArcFaceGo智慧门禁应用套件。 这款套件直接安装在Android系统的Pad上即可,仅在设备端就能完成人脸批量注册、活体检测、人脸识别验证等完整功能,还能够在电脑端统一管理多个本地设备,适合我这种缺乏专业基础的用户使用。 我在实际使用中总结了一些经验,分为 预备工作、正式安装、人脸注册、硬件适配、识别参数设置 和 注意事项 六部分,在此把完整使用过程与其他同我类似的新手开发者分享。 【预备工作】 下载ArcFaceGO应用套件之前,需要先在虹软视觉开发平台官网进行注册,并进行企业身份认证。完成身份认证需要一点时间,但绝对不会超过3天。 整个注册和下载过程很快,APK只有42M,PC客户端才7M。激活应用套件需要用到【人脸识别增值版SDK】激活码,可以直接购买

AUC(Area under Curve Roc曲线下面积)计算方法总结

时光总嘲笑我的痴心妄想 提交于 2020-03-24 16:41:11
3 月,跳不动了?>>> 转载至 http://blog.csdn.net/pzy20062141/article/details/48711355 一、roc曲线 1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。 横轴 :负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity) 纵轴 :真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率) 2针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况. (1)若一个实例是正类并且被预测为正类,即为真正类(True Postive TP) (2)若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN) (3)若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP) (4)若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN) TP :正确的肯定数目 FN :漏报,没有找到正确匹配的数目 FP :误报,没有的匹配不正确 TN :正确拒绝的非匹配数目 列联表如下,1代表正类

AUC计算方法总结

十年热恋 提交于 2020-03-24 16:24:07
3 月,跳不动了?>>> 一、roc曲线 1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。 横轴 :负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity) 纵轴 :真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率) 2针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况. (1)若一个实例是正类并且被预测为正类,即为真正类(True Postive TP) (2)若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN) (3)若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP) (4)若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN) TP :正确的肯定数目 FN :漏报,没有找到正确匹配的数目 FP :误报,没有的匹配不正确 TN :正确拒绝的非匹配数目 列联表如下,1代表正类,0代表负类: 由上表可得出横,纵轴的计算公式: (1)真正类率(True Postive Rate)TPR: TP/(TP+FN

计算机视觉(1)关于cvThreshold二值化函数

爱⌒轻易说出口 提交于 2020-03-23 09:54:06
计算机视觉(1)关于cvThreshold二值化函数 opencv中文说明中是这样说的: Threshold 对数组元素进行固定阈值操作 void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ); src:原始 数组 (单通道 , 8-bit of 32-bit 浮点数)。 dst:输出数组,必须与 src 的类型一致,或者为 8-bit。 threshold:阈值 max_value:使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。 threshold_type:阈值类型 threshold_type=CV_THRESH_BINARY:如果 src(x,y)>threshold ,dst(x,y) = max_value; 否则,dst(x,y)=0; threshold_type=CV_THRESH_BINARY_INV:如果 src(x,y)>threshold,dst(x,y) = 0; 否则,dst(x,y) = max_value. threshold_type=CV_THRESH_TRUNC:如果 src(x,y)>threshold,dst(x,y) = max