Java通用数据生成工具类brook使用文档
brook 文档项目github仓库:brook,欢迎star或提交pull。 背景日常工作中,经常需要一些用户信息的测试数据,比如身份证,手机号码,银行卡,姓名(这四类信息称为四要素)等等。一般情况下比较便捷的做法: Java:定义一个类里面放一些常用的身份证前缀,银行卡 bin 等,然后通过随机生成 Python: 定义多个字典,字典也是放一些常用的数据,也通过组合或者随机生成 其他: 跟上述原理差得不多 但是存在会存在一些问题: 重复造轮子:小张的项目自己写了一套 utils 类,小红的项目里面又另外写了一套 utils 类 功能单一: 造的轮子相对简单,只能生成一些相对固定的数据 如果将这些大家用得特别多的数据,通过一个统一的工具类来生成,会不会给大家带来便利呢?答案是肯定的: 用法简单:一个链式调用即可生成想要的数据 功能多样:根据不同的条件生成不同的测试数据,满足不同的业务需求 减少造轮子成本 数据严谨: 生成的身份证完全遵循【六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码】;银行卡 bin 完全可以通过阿里的银行卡校验接口;姓名由姓氏和名字组 ...
系统必备软件镜像大全
镜像大全 类别 镜像地址 配置教程 AdoptOpenJDK tsinghua - centos tsinghua aliyun JDK huawei - pip/pypi aliyun - Maven aliyun aliyun
计算机专业从业人员书籍推荐
CS 基础计算机网络操作系统数据结构计算机组成原理前端HTMLCSS 中文 购书&下载 豆瓣评分 英文 购书&下载 适用人员 深入解析 CSS 京东/微信阅读 9.3 CSS in Depth manning css 初级 JavaScript后端Java 中文 购书&下载 豆瓣评分 英文 购书&下载 适用人员 Java 编程思想(第 4 版) 京东 9.1 Thinking in Java 京东 基础 Java 程序设计语言 京东 8.6 The Java Programming Language - 基础 JAVA2 核心技术 卷 Ⅰ:基础知识 京东 8.7 Core java 2. Volume I, Fundamentals 异步社区 基础 JAVA2 核心技术 卷 Ⅱ:高级特性 京东 8.8 Core java 2. Volume Ⅱ, Advanced Feature 异步社区 进阶 Effective Java中文版(第3版) 京东github 9.6 Effective Java Third Edi ...
【算法】从多个部门选择不在同个部门的人员
题目来源:同事面试之前需要做一份笔试题,这是笔试题里面的其中一道题。 市场部门委托进行分组方案数量计算的程序开发,需求如下:某网格下按照区域分为四个大组,每个大组内销售经理人数分别为a,b,c,d人,需要从中选出2人,且2人不能再同一个大组中。程序需要输入四个组人数的情况下,输出全部选取方式的数量。 输入:第一行输入四个整数a b c d 输出:可选方案的总数量 输入样例:1, 2, 1, 0 ; 输出样例: 5 简单解法此方法需要对概率计算的理解比较通透,我们把四个组,两两分组成一对: [a,b],[a,c],[a,d] | [b,c],[b,d] | [c,d] 因为需要每一个组中人员不可以重复选,也就是说:该组几个人,就有几种可能,于是乎: sum = a*b + a*c + a*d + b*c + b*d + c*d 递归定义一个方法,该方法的输入为一个int数组{a,b,c,d},以及需要从数组中选中人员数目。比如我们需要计算4个组中,2个人员个数: func({a,b,c,d}, 2), 方法的返回为,当前数组中,选择对应人数的方案个数。 4选2 拆分 = (第一位选0 ...
有效睡眠 powerful sleep 以及个人心得体会
睡眠机制睡眠五个步骤 清醒状态 第一阶段:身体放松,呼吸和心率开始变慢,大脑变得放松,思维开始漫游 第二阶段:人仍然是清醒的 第三和第四阶段:深度睡眠阶段,人的血压,呼吸和心率都达到一天中最低点,血管开始膨胀,存储在器官里的血液开始流向肌肉组织,滋养和修复它们 第五阶段:快速眼动睡眠(REM),眼睛向各个方向移动,人做梦的大多数时候都处在这个阶段 睡眠周期 图:睡眠周期 在一个睡眠周期内,人要经历数个从第一阶段到第五阶段的过程。 深度睡眠重要性科学证明,在缺乏睡眠时,人的身体在白天会收到损害。比如打瞌睡,头痛,反胃,肌肉酸痛,注意力不集中。 当人在不规律的缺乏睡眠时,身体会减少其他阶段的时间而优先给深度睡眠阶段。 人的免疫系统在睡眠时会抗击疾病,所以当人生病时睡得比平时多。 REM重要性由于身体在缺乏睡眠时优先选择的是深度睡眠,我们可以认为 REM 对于恢复身体机能不是那么重要。目前还不清楚REM 是有何用,但有个理论认为人在REM 回顾白天的所知所见。这解释了婴儿睡眠的50%时间都处于REM。 什么是高质量睡眠高质量的睡眠就是睡眠程序比较深,也就是大脑比较容易进入到深入睡眠阶段。 ...
Web性能权威指南 - 读书笔记
第一部分 网络技术概览第一章 延迟与带宽1.1 速度是关键所有网络通信都有决定性影响的两个方面:延迟和带宽 延迟:分组(Packet)从信息源发送到目的地所需的时间 带宽:逻辑或物理通信路径的最大的吞吐量 在osi七层模型中,不同层传输数据包格式: 层次 数据包格式 应用层 data 报文 表示层 data 报文 会话层 data 报文 运输层 segments tcp-报文段 udp-用户数据报 网络层 packets 分组/数据包 数据链路层 frames 帧 物理层 bits 比特 详情可见OSI Model 1.2 延迟的构成任何系统都有许多因素可能影响传送消息的时间。 路由器影响延迟的因素: 传播延迟:消息从发送端到接收到需要的时间,是信号传播距离和速度的函数 传输延迟:把消息中的所有比特传输到链路中需要的时间,是消息长度和链路速率的函数 处理延迟:处理分组首部,检查位错误以及确定分组目标所需要的时间 排队延迟:到来的分组排队等待的时间 形象点理解: 传播延迟:车辆在高速公路上行驶的时间 传输延迟:车辆把要发送的货物装满花 ...
【译】Google - 代码覆盖率最佳实践
原文:Code Coverage Best Practices作者:Carlos Arguelles, Marko Ivanković, and Adam Bender 我们花费了数十年的时间在许多大型软件公司推动软件测试活动。我们一贯倡导的领域之一:使用代码覆盖率数据来评估风险和找出测试中的差距。然而,代码覆盖的价值是一个争论激烈的话题,众说纷纭,而且是一个出人意料的两极分化的话题。每当在任何一个大型群体中提到代码覆盖率时,似乎无休止的争论就会接踵而来。人们总是各自为阵,并不会为争论带来任何有成效的进展。本文档的目的是为你提供工具,引导不同阵营的人找到共同点,以便你能够向前迈进,务实地使用覆盖信息。我们提出了代码覆盖领域的最佳实践,以有效地处理代码健康问题。 代码覆盖率为开发工作流程带来了显而易见的收益。它不是测试质量的最佳衡量标准,但是提供了具有可行数据的合理、客观、行业标准的度量标准。它不需要大量的人为干预,普遍适用于所有产品,并且行业中对于大多数语言都有足够的工具可用。你必须理解这是一个有损的间接指标,它将大量信息压缩成一个数字,所以它不应该是你唯一的真相来源。相反,将其与 ...
Java - HashMap的链表超过8就转为红黑树吗?
抛出问题最近看了一些有关HashMap的博客,似乎一提到链表转红黑树,统一的答案都是:链表长度超过8就转,那这个答案是对的吗?下面通过代码实例简单说说这个问题。 如果想了解更多HashMap的细节,推荐下面的博客: Java-HashMap工作原理及实现 美团 ~ java-hashmap 内部结构参考一下,下面的图片有个直观的感受 图片来源 源码层面先看一下 HashMap 的 treeifyBin() 方法: 12345678910/** * Replaces all linked nodes in bin at index for given hash unless * table is too small, in which case resizes instead. */final void treeifyBin(Node<K,V>[] tab, int hash) { int n, index; Node<K,V> e; if (tab == null || (n = tab.length) < MIN_TREEIF ...
Java - hashCode与equals之间的联系
问题 Q1 - hashCode()相同,则equals()也一定为true? Q2 - equals()为true,hashCode()也不一定相同 ? Q3 - hashCode()返回的是对象的内存地址吗? 第三个问题是从csdn上面偶尔看到,看得人挺懵的!!! 下面细细道来: equals()equals方法在非null对象引用实现对等关系: It is reflexive: for any non-null reference value x, x.equals(x) should return true. It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equ ...
使用宝塔在云服务器上搭建Hexo博客全记录
前提 一台云服务器(阿里云/腾讯云/华为云等等) 一个域名(阿里域名/腾讯域名等)且已经备案 熟悉基本的linux命令 懂点英文 安装宝塔假设你已经登录进了云服务器,如果不懂如何操作,请google一下。 安装之所以使用宝塔,因为它可以帮你节省很多不必要的麻烦,并且有很多一键式操作。 宝塔Linux面板系统兼容性:Centos8.x > Centos7.x > Ubuntu18.04 > Debian10 > Ubuntu 20.04 > 其它系统 CentosUbuntu/DeepinDebianFedora $ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh $ wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash insta ...