自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (6)
  • 收藏
  • 关注

转载 Java JUnit 单元测试小结

测试类型单元测试(Unit test)单元测试关注单一的类. 它们存在的目的是检查这个类中的代码是否按照期望正确运行.集成测试(Integration test)集成测试是检查开发的模块和其他模块整合时是否正常工作.虽然集成测试的代码影响范围比单元测试要广, 但是集成测试和单元测试一样, 也是针对于开发者而言的.端到端测试(End-to-End test)端到端测试是将整个系统作为一个整体, 然后从用户的角度进行测试的.端到端测试的目的是测试系统在实际使用的是否正常的, 因此通常

2021-04-15 22:05:48 574 2

转载 垃圾回收器学习之Full GC和CMS GC的区别

针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种:Partial GC:并不收集整个GC堆的模式Young GC:只收集young gen的GCOld GC:只收集old gen的GC。只有CMS的concurrent collection是这个模式。Mixed GC:收集整个young gen以及部分old gen的GC。只有G1有这个模式。HotSpot VM里其它非并发GC的触发条件复杂一些,不过大致的原理与上面说的其实一样。当然也总有例外。Parallel Scaveng

2021-01-22 11:10:15 1955

转载 promotion failed和concurrent mode failure

CMS并行GC收集器是大多数JAVA服务应用的最佳选择,然而, CMS并不是完美的,在使用CMS的过程中会产生2个最让人头痛的问题:promotion failed该问题是在进行Minor GC时,Survivor Space放不下,对象只能放入老年代,而此时老年代也放不下造成的。(promotion failed时老年代CMS还没有机会进行回收,又放不下转移到老年代的对象,因此会出现下一个问题concurrent mode failure,需要stop-the-wold 降级为GC-Serail

2021-01-21 22:28:24 867

转载 BeanPostProcessor的五大接口

BeanPostProcessor关于对象初始化前后的回调。 1 2 3 4 5 6 7 8 9 10 11 12 InstantiationAwareBeanPostProcessor关于对象实例化前后以及实例化后设置propertyValues的回调 1 2 3 4 5 6 7 8 9 10...

2020-12-18 19:25:26 260

原创 Mysql 锁的测试

本文目的1、看一下gap对非唯一索引的阻塞2、on duplicate key update 死锁复现。 mysql 5.7.26 已经修复一、查看mysql引擎show engines ;show variables like '%storage_engine%' ;show variables like 'innodb_autoinc_lock_mode' ;set GLOBAL innodb_status_output_locks=ON;创建表CREAT...

2020-12-18 16:36:59 263 2

转载 详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)

行锁在 InnoDB 中是基于索引实现的,所以一旦某个加锁操作没有使用索引,那么该锁就会退化为表锁。记录锁(Record Locks)顾名思义,记录锁就是为某行记录加锁,它封锁该行的索引记录:-- id 列为主键列或唯一索引列SELECT * FROM table WHERE id = 1 FOR UPDATE;复制代码id 为 1 的记录行会被锁住。需要注意的是:id 列必须为唯一索引列或主键列,否则上述语句加的锁就会变成临键锁。同时查询语句必须为精准匹配(=),不能为...

2020-12-10 15:40:51 1775 2

转载 论 MySql InnoDB 如何通过插入意向锁控制并发插入

前言在讲解之前,先来思考一个问题——假设有用户表结构如下:MySql,InnoDB,Repeatable-Read:users(id PK, name, age KEY)id name age 1 Mike 10 2 Jone 20 3 Tony 30 首先事务 A 插入了一行数据,并且没有 commit:INSERT INTO users SELECT 4, 'Bill', 15;复制代码随后事务 B 试图插入一行数据

2020-12-10 14:39:05 762

转载 详解 MySql InnoDB 中意向锁的作用

前言InnoDB 支持多粒度锁(multiple granularity locking),它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁。意向锁(Intention Locks)需要强调一下,意向锁是一种不与行级锁冲突表级锁,这一点非常重要。意向锁分为两种:意向共享锁(intention shared lock, IS):事务有意向对表中的某些行加共享锁(S锁) -- 事务要获取某些行的 S 锁,必须先获得表的 IS 锁。SELECT column FROM table ..

2020-12-10 14:16:53 477

转载 Mysql 锁

1.锁?1.1何为锁在计算机中的锁一般用来管理对共享资源的并发访问,比如我们java同学熟悉的Lock,synchronized等都是我们常见的锁。当然在我们的数据库中也有锁用来控制资源的并发访问,这也是数据库和文件系统的区别之一。小明接了一个需求,商家有个配置项,叫优惠配置项,可以配置买一送一,买一送二等等规则,当然这些配置是批量传输给后端的,这样就有个问题每个规则都得去匹配他到底是删除还是添加还是修改,这样后端逻辑就比较麻烦,聪明的小明想到了一个办法,直接删除这个商家的配置,然后全部添加进去

2020-12-09 16:48:04 226

转载 finalize() 原理

finalize 方法的作用是:如果对象在进行可达性分析后发现没有与 GC Roots 相连接的引用链,那他将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行 finalize 方法。注意:当对象没有覆盖 finalize 方法,或者 finalize 方法已经被虚拟机调用过,虚拟机将这两种情况都视为 “没有必要执行”。也就是说,finalize 方法只会被执行一次。如果这个对象被判定为有必要执行 finalize 方法,那么这个对象将会放置在一个叫做 F-Queue 的队列之中,

2020-12-08 11:19:54 816

转载 各种IO模型,一篇打尽

一、阻塞/非阻塞-同步非同步同步/异步同步请求:A调用B,B的处理是同步的,在处理完之前他不会通知A,只有处理完之后才会明确的通知A;异步请求:A调用B,B的处理是异步的,B在接到请求后先告诉A我已经接到请求了,然后异步去处理,处理完之后通过回调等方式再通知A。同步/异步区别同步和异步最大的区别就是被调用方的执行方式和返回时机;同步指的是被调用方做完事情之后再返回;异步指的是被调用方先返回,然后再做事情,做完之后再想办法通知调用方。阻塞/非阻塞...

2020-12-07 17:20:46 93

转载 Redis热点Key发现及常见解决方案

热点Key问题产生的原因大致有以下两种:1、用户消费的数据远大于生产的数据(热卖商品、热点新闻、热点评论、明星直播)。在日常工作生活中一些突发的的事件,例如:双十一期间某些热门商品的降价促销,当这其中的某一件商品被数万次点击浏览或者购买时,会形成一个较大的需求量,这种情况下就会造成热点问题。同理,被大量刊发、浏览的热点新闻、热点评论、明星直播等,这些典型的读多写少的场景也会产生热点问题。2、请求分片集中,超过单 Server 的性能极限。在服务端读数据进行访问时,往往会对数据进行分片切分,此

2020-12-07 14:53:26 148

转载 数据分析应学习逻辑思维及分析方法

数据分析的下限,取决于逻辑归纳。与其说提高分析质量,不如说提升逻辑归纳能力。逻辑归纳,需要拥有良好的逻辑思维,并结合领域知识形成该领域的分析方法。而领域方法,进一步归纳则能够成为通用了方法论。关于数据分析,本文将从逻辑思维和分析方法2个角度进行解读,其中分析方法会介绍数据分析前的准备以及数据如何为我们创造长期价值。一、数据分析应有的逻辑思维逻辑思维,是在认识事物的过程中借助概念、判断、推理等思维形式反映客观现实的理性认识过程。借助逻辑思维,能够确立执行方向,减少方向的偏移度以及分析的误差

2020-11-12 14:49:17 1787

转载 因果分析.科学实验评估

目录1. A/B Test原理2. 实验分组划分3.实验指标设计4. 实验效果评估5.离线指标测算6.实验结果分析不是每个想法都是好的,大部分想法都是不好的。在互联网背景下,快速试错已经成为产品持续迭代的必备能力。借鉴传统行业(医学等)成熟的实验理论(因果推断),互联网逐渐发展了以AB Test为核心的数据驱动决策之路。在以下场景中可以考虑使用A/B Test:重大产品功能很难决策,不确定哪个方案效果最优。 "后验"成本高,如果改版失败,业务风险较大。通过 abtes

2020-11-09 16:54:58 9260

转载 AB实验你真的了解嘛

1 为什么要做A/B实验?A/B实验,是一种验证假设的方法,其核心方法及原理分别是对照实验及假设检验。在实际实验时会从总体抽取部分个体组成样本单位,并从个体实验结果推断总体结果。1-1、实验原因由于对照实验遵循单一变量原则,能通过对比发现因果性,并根据实验结果量化正向和负向的影响程度。当实现了某个新的特性,我们无法准确预估上线后是增益还是减益,从风险和成本的角度考量,会切分小流量进行验证。小型实验也意味着大部分能在单研发团队自助完成,时间和效率也能得到保障。1-2、适..

2020-11-06 19:56:05 2301

转载 常用实验设计方法有哪些?

自然界和人类社会中,很多现象和事物都不是独立存在的,它们往往纵横交错在一起。数据分析的其中一个重要目的就是研究事物之间的相互关系,发现事物或现象背后客观存在的规律性。这些客观规律性往往受到各种因素的影响,因此,为了减少数据分析结果的误差,同时提高准确性和精确性,合理的实验设计是必不可少的。如果实验设计不合理,不仅会增加实验次数,延长实验周期,造成人力、物力和时间的浪费,而且会导致预期的结果难以达到,甚至导致整个研究工作失败。实验设计应用的范围非常广,不仅应用在生物学以及医学领域,也应用在工农业生产、微生物

2020-11-03 17:49:18 12248

转载 利用jdk的awt.geom 判断处理geo业务应用经纬度的线段相交,点在多边形区域内问题

//两条线段是否相交,{(0,0),(2,2)} {(2,0),(1.9,1.8)} boolean res = Line2D.linesIntersect(0,0,2,2,2,0,1.9,1.8); System.out.println(res); //点是否在多边形内,{(0,0),(2,0),(2,2),(0,2),(0,0)} 测试点(1,1) GeneralPath path = new GeneralPath()...

2020-11-03 16:14:19 175

转载 insert主键返回 selectKey使用

设计表的时候有两种主键,一种自增主键,一般为int类型,一种为非自增的主键,例如用uuid等。1、首先说自增类型的主键。<!--新增信息,并拿到新增信息的表主键信息。新增数据,得到主键的外层写法没什么特别,跟普通的insert一样。只不过里面加了selectKey--><insertid="insertAndgetkey"parameterType="com.soft.mybatis.model.User"><!--selectK...

2020-10-29 11:18:40 493

转载 Show Profile

前言:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。1.分析步骤#1.开启Show Profile功能,默认该功能是关闭的,使用前需开启。show variables like 'profiling'set profiling=on; set profiling=off; show profile;#2.根据MySQL高级知识(十)——批量插入数据脚本

2020-10-21 14:44:53 214

转载 mysql 删除数据后物理空间未释放 索引信息中的列的信息说明

OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致。OPTIMIZE TABLE 是指对表进行优化。如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)进行了很多更改,就应该使用OPTIMIZE TABLE 命令来进行表优化。这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费。OPTIMIZE TABLE 命令只对 ..

2020-10-15 11:16:08 444

转载 group by与distinct效率分析及优化措施

mysql的distinct在结果集中,全部不同,才可以去重。所以,当我们进行去重处理的时候,需要单独对某列进行去重,可以使用group by子句进行分组去重select _auto_id from account_login group by _auto_id; 该语句可以对_auto_id列进行去重。在使用group by进行去重效率分析无索引0.23smysql> explain select _auto_id from account_login group by _aut

2020-10-14 21:58:37 1535

转载 箱须图

箱线图也称箱须图、箱形图、盒图,用于反映一组或多组连续型定量数据分布的中心位置和散布范围。箱形图包含数学统计量,不仅能够分析不同类别数据各层次水平差异,还能揭示数据间离散程度、异常值、分布差异等等。小小箱子,大大信息量箱线图(Box plot)也称箱须图(Box-whisker Plot)、箱线图、盒图,可以用来反映一组或多组连续型定量数据分布的中心位置和散布范围,因形状如箱子而得名。1977年,美国著名数学家John W. Tukey首先在他的著作《Exploratory Data Anal.

2020-10-14 17:10:50 1303

转载 MySQL分页查询优化

当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数据,最大为varcha

2020-10-13 18:22:32 109

转载 SQL执行计划分析

解释ID列是一位数字,表示执行SELECT语句的顺序。id值相同执行顺序从上到下。id值不同时id值大的先执行。SELECT_TYPE这一列显示了对应行是简单还是复杂SELECT.取值如下:SIMPLE值意味着查询不包括子查询和UNION。查询有任何复杂的子部分,则最外层标记为PRIMARY.取值如下:TABLE输出数据行所在的表的名称PARTITIONS对于分区表,显示查询的分区ID,对于非分区表,显示为NULLTYPEEXTRA...

2020-10-12 21:06:40 356

转载 执行计划的extra字段---- using where , using index 和 using where & using index 整理

结论:extra字段是using index,意思就是索引覆盖,查询的内容可以直接在索引中拿到extra字段是using where,代表发生了过滤和索引没有直接关系【和是否会表也没有关系】CREATE TABLE table (xxx varchar(20) NOT NULL,yyy varchar(20) NOT NULL,zzz datetime NOT NULL,aaa varchar(10) NOT NULL,PRIMARY KEY (xxx,yyy,zzz),) EN.

2020-10-12 21:06:24 2559

转载 MySQL执行计划extra中的using index 和 using where; using index 的区别

转自:https://www.linuxidc.com/Linux/2017-08/146297.htm 侵删mysql执行计划中的extra列中表明了执行计划的每一步中的实现细节,其中包含了与索引相关的一些细节信息其中跟索引有关的using index 在不同的情况下会出现Using index, Using where Using index ,Using index condition等那么Using index 和 Using where;Using index有什么区别?网上搜了一大...

2020-10-12 20:48:10 1498

转载 Guava系列之Cache

List、Set、Map是我们开发过程中使用频次最高的三种集合类型Lists主要方法有各种创建list的方法 asList()将数据组转成list newArrayList() newArrayListWithCapacity(10) 指定容量的创建 newArrayListWithExpectedSize(20) 初始化指定容量 newCopyOnWriteArrayList() newLinkedList() partition(List<T> lis.

2020-09-30 20:08:53 1799

转载 Guava refreshAfterWrite只阻塞回源线程,其他线程返回旧值

上一篇文章"Guava Cache特性:对于同一个key,只让一个请求回源load数据,其他线程阻塞等待结果"提到:如果缓存过期,恰好有多个线程读取同一个key的值,那么guava只允许一个线程去加载数据,其余线程阻塞。这虽然可以防止大量请求穿透缓存,但是效率低下。使用refreshAfterWrite可以做到:只阻塞加载数据的线程,其余线程返回旧数据。public class GuavaCache4TestRefresh { private static CountDownLatch latch

2020-09-30 19:24:47 609

转载 Guava限流RateLimiter

在互联网高并发场景下,限流是用来保证系统稳定性的一种手段,当系统遭遇瞬时流量激增时,可能会由于系统资源耗尽导致宕机。而限流可以把一小部分流量拒绝掉,保证大部分流量可以正常访问,从而保证系统只接收承受范围以内的请求,多余的请求给拒绝掉。举个例子,节假日很多人都会出去玩,我们知道每个地铁站单位时间内可承受的运输能力是有限的,也就是每趟车承载的人数是有上限的,当达到这个上限以后,上不去的人就只能排队等待,当排队等待的人已经到地铁站口了,此时保安就会限制再进入地铁站了。此时的保安就是起到限流的作用常用的限流

2020-09-30 15:48:23 302

转载 Guava系列之不可变集合

Guava的不可变集合(Immutable Collections)什么是不可变对象?对象创建后,所有的状态和属性在整个生命周期内不能被修改;同理,不可变集合就是集合创建后,不能对集合中的对象进行修改为什么需要不可变对象?或者说不可变对象有什么好处?好处1:让并发处理变得更简单了,对象是线程安全的好处2:消除了副作用下面我们看一个例子public class DemoTest { public static void main(String[] args){ ...

2020-09-30 15:15:15 472

转载 什么是IDC ,可以用来做什么

1. 什么是IDCIDC的英文是Internet Data Center,翻译为互连网数据中心。作为NSP业务的一个重要的网络服务平台,它通过与某一骨干网高速连接,借助丰富的网络资源向网站企业和传统企业提供大规模、高质量、安全可靠的专业化服务器托管、空间租用、网络批发带宽。IDC机房的部分标准开机时电子计算机机房的温、湿度夏季:23±2℃冬季:20±21℃全年:18-28℃  温度变化率 <5℃h 并不得结露 <10℃/h 并不得结露相对湿度 45%-65%(A级) 40%.

2020-09-30 15:13:49 6145

转载 [Google Guava] 12-数学运算

原文链接译文链接译者:沈义扬为什么使用Guava MathGuava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败; Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava Math的速度通常可以与Apache Commons的MathUtils相比,在某些场景下甚至还有显著提升; Guava Math在设计上考虑了可读性和正确的编程习惯;IntMat..

2020-09-30 12:14:33 219

转载 高可用性及容灾的几个衡量指标

网站可用性所谓网站可用性(availability)也即网站正常运行时间的百分比,业界用 N 个9 来量化可用性, 最常说的就是类似 “4个9(也就是99.99%)” 的可用性。描述 通俗叫法 可用性级别 年度停机时间 基本可用性 2个9 99% 87.6小时 较高可用性 3个9 99.9% 8.8小时 具有故障自动恢复能力的可用性 4个9 99.99% 53分钟 极高可用性 5个9 99.999%

2020-09-30 01:08:05 2094

转载 假设检验|第三章:统计学中的显著性水平α和P

文章来自微信公众号:发现Minitab概述在假设检验中,我们很多时候对显著性水平α和P值理解不透彻?在这篇文章中,我将继续关注概念和图形,以帮助您更直观地理解假设检验在统计学中的工作原理。为了实现它,我将在我之前文章的基础上将显著性水平α和P值添加到图形中,以便执行单样本t检验。当您可以看到真正意义上的统计意义时,您会更容易理解!在上一篇文章中我们想确定我们的样本平均值(330.6)是否表明今年的平均能源成本与去年260美元的平均能源成本显著不同。上面的概率分布图显示了我们在原假设为

2020-09-25 00:57:28 7274

转载 1.什么是显著性检验? 2.为什么要做显著性检验? 3.怎么做显著性检验?

作者:薛定饿了么链接:https://www.zhihu.com/question/30272097/answer/472809487来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Question:1.什么是显著性检验? 2.为什么要做显著性检验? 3.怎么做显著性检验?(阅读本回答预计用时9分钟)后文将对该三个问题作出解释,最后推荐一个CrashCourse的统计学扫盲课程一.什么是显著性检验?在统计学中,显著性检验是“统计假设检验”(Statis.

2020-09-25 00:30:42 79521 15

转载 为什么需要 Stream

为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。

2020-09-25 00:02:08 756

转载 Linux进程内存分析pmap命令

名称:pmap - report memory map of a process(查看进程的内存映像信息)用法pmap [ -x | -d ] [ -q ] pids...pmap -V选项含义-x extended Show the extended format. 显示扩展格式 -ddevice Show the deviceformat. 显示设备格式...

2020-09-17 12:43:40 1340

转载 正则表达式中(?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)和(?<!pattern)

正则表达式的匹配原理可以参考这篇文章:https://blog.csdn.net/lxcnn/article/details/4304651(?:pattern)#()表示捕获分组,()会把每个分组里的匹配的值保存起来,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来import rea = "123abc456ww"pattern = "([0-9]*)([a-...

2020-09-10 21:53:22 1481

转载 Google的CacheBuilder缓存

1:refreshAfterWriteGuava Cache特性:对于同一个key,只让一个请求回源load数据,其他线程阻塞等待结果这种情况:如果缓存过期,恰好有多个线程读取同一个key的值,那么guava只允许一个线程去加载数据,其余线程阻塞。这虽然可以防止大量请求穿透缓存,但是效率低下。使用refreshAfterWrite可以做到:只阻塞加载数据的线程,其余线程返回旧数据。2:之前常用ConcurrentMap来做缓存,那它们有什么区别呢?Guava Cache与Concur.

2020-09-10 21:29:34 699 1

转载 Apache Doris 在美团点评的实践

转自https://blog.bcmeng.com/post/meituan-doris.html本文的内容是我 4 月 13 日在 Doris Meetup 上的分享,我主要从技术选型,典型应用,平台化建设,功能改造 4 方面进行了分享。技术选型背景在2017年年底,我们已经维护了 Kylin 和 Druid 两个开源 OLAP 系统,Kylin 主要满足离线固化多维分析的需求,Druid 主要满足实时多维分析的需求。所谓的固化多维分析,指需要提前预定义维度和指标,然后查询时需要根..

2020-09-07 15:50:07 1078

log4j 使用简明手册

log4j 使用简明手册 , 帮助初学者快速的掌握log4j,快速的上手

2009-09-20

log4j api chm

log4j的api文档。并且是chm格式的。看起来很方便

2009-09-20

学习 struts1.3 CHM

学习struts必备的文档工具!~轻轻松学习struts。。

2009-03-04

mysql 5.1 chm 参考手册

文档内容很细。。帮助你轻松学习mysql

2009-03-04

Mysql中文参考手册

这个不是官方的那个很细的文档,但是对于刚开始接触mysql的还是很方便的,层次比较清晰

2009-03-04

javaScript

javascript 一些入门介绍,方便新手学习。。。

2009-03-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除