Commons-lang

都为你整理好了,5种Java 随机方式对比!你都知道吗?

陌路散爱 提交于 2021-01-17 16:56:19
1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。 for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } 结果: 0.3598613895606426 0.2666778145365811 0.25090731064243355 0.011064998061666276 0.600686228175639 0.9084006027629496 0.12700524654847833 0.6084605849069343 0.7290804782514261 0.9923831908303121 实现原理: When this method is first called, it creates a single new pseudorandom-number generator, exactly as if by the expression new java.util.Random() This new pseudorandom-number generator is used thereafter for all calls to this method and is used nowhere else.

Spring Boot 使用 Maven 定制一个 parent 简化开发

余生长醉 提交于 2020-12-04 19:24:27
1/ 场景 有很多小应用,有一些公共的特点,比如说都依赖了spring-boot、log4j2、lombok、fastjson等等,为了方便开发,可以使用Maven定制一个parent来简化开发,统一管理第三方依赖的版本。(为后续的微服务做准备哦!) 2/ 构建 parent 2.1. 新建一个Maven工程,any-root。 2.2. 修改pom.xml,添加父工程的依赖,基本上子工程都会用到这些依赖。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.ictgu</groupId> <artifactId>any-root</artifactId> <version>1.0.RELEASE</version> <packaging>pom<

第十三篇 : SpringBoot 整合 apollo

只愿长相守 提交于 2020-10-28 03:53:39
简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 Apollo和Spring Cloud Config对比 通过对比,可以看出,生成环境中 Apollo 相比 Spring Cloud Config 更具有优势一些。 安装 Apollo 配置中心 搭建教程 参照 https://github.com/ctripcorp/apollo/wiki/Quick-Start 搭建 Apollo 配置中心,文档写的很清楚,这里就赘述了。 查看样例配置 搭建完成并启动后,访问 http://localhost:8070 ,界面如下。 输入用户名 apollo,密码 admin 后登录后,点击SampleApp进入配置界面。 与 Spring Boot 整合使用 创建一个springboot项目,主要代码如下。 pom.xml 添加 Apollo 客户端的依赖,为了编码方便引入commons-lang3。 < dependency > < groupId > com.ctrip.framework.apollo </ groupId > < artifactId > apollo-client </ artifactId > < version

Spring Boot 使用 Maven 定制一个 parent 简化开发

血红的双手。 提交于 2020-10-15 06:43:02
1/ 场景 有很多小应用,有一些公共的特点,比如说都依赖了spring-boot、log4j2、lombok、fastjson等等,为了方便开发,可以使用Maven定制一个parent来简化开发,统一管理第三方依赖的版本。(为后续的微服务做准备哦!) 2/ 构建 parent 2.1. 新建一个Maven工程,any-root。 2.2. 修改pom.xml,添加父工程的依赖,基本上子工程都会用到这些依赖。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.ictgu</groupId> <artifactId>any-root</artifactId> <version>1.0.RELEASE</version> <packaging>pom<

RabbitMQ(二、消息模型)

爱⌒轻易说出口 提交于 2020-10-02 22:01:50
1、消息模型概述   RabbitMQ提供几种消息模型,如下图      其中最后一种是RPC,不是MQ。此处不予讨论。下面用例子说明每种模式。 2、Demo准备工作   首先新建一个springboot项目,引入依赖。 <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> </dependencies>   为了方便操作,先写一个连接MQ的工具类 public class ConnectionUtil { /** * 建立与RabbitMQ的连接 * @return *

idea创建web项目报错DefaultVelocityComponent

流过昼夜 提交于 2020-10-02 16:06:20
[WARNING] Error initializing: org.codehaus.plexus.velocity.DefaultVelocityComponent@28348c6 java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils 添加下面内容到文件~/.m2/repository/org/apache/maven/plugins/maven-archetype-plugin/{version}/maven-archetype-plugin-{version}.pom: <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> 来源: oschina 链接: https://my.oschina.net/u/4343506/blog/4547299

java中的数字以及如何判断字符串是不是数字

微笑、不失礼 提交于 2020-09-26 01:51:06
01 前言 数字是计算机科学的根本,那么java中数字是怎样来表示呢?规则又是怎样呢?今天我们来探讨一下这个话题。数字在某些领域经常用字符串来进行表示和传递。那么我们可以从判断java中一个字符串是否是数字来获取一些有用的信息。 02 空字符和null 首先我们可以很清晰的知道空字符 "" 和 null 肯定不是数字。其实我们写其他逻辑一样。把一些最极端最容易辨别处理的逻辑判断直接要优先进行处理。这是一个小的窍门。 03 toCharArray 排除了先前情况的字符串可以通过 toCharArray() 方法转换为char数组。而 Character.isDigit(int) 很容易判断该char元素是否是数字(不要问char为什么是int!)。那么该方法会不会奏效呢?我们来操作一波各种情况: public class Main { public static void main(String[] args) { // false System.out.println("\"\" 是不是数字:"+isNumeric("")); // false System.out.println("\" \" 是不是数字:"+isNumeric(" ")); // false System.out.println("null 是不是数字:"+isNumeric(null)); // false

StringUtils.isEmpty()和isBlank()的区别

梦想与她 提交于 2020-08-19 20:56:04
一、概述 两种判断字符串是否为空的用法都是在程序开发时常用的,相信不少同学在这种简单的问题上也吃过亏,到底有什么区别,使用有什么讲究,带着问题往下看。 二、jar包 commons-lang3-3.5.jar 三、isEmpty详解 3.1 源码 public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; } 此时发现 isEmpty 参数是“CharSequence”类型,按之前正常的使用,再看String类的实现: public final class String implements java.io.Serializable, Comparable<String>, CharSequence{ ... ... } String类实现了CharSequence接口,所以,正常使用时,我们只需要放字符串即可。 再回顾isEmpty源码,很简单,为null或长度为0即判定为Empty。 3.2 示例 public static void main(String[] args){ StringUtils.isEmpty(null); //true StringUtils.isEmpty(""); //true StringUtils.isEmpty(" "); /

Android 中对Java对象深拷贝的方法

∥☆過路亽.° 提交于 2020-08-19 10:05:38
前言 在项目中偶尔会遇到关于深拷贝的问题,比如点餐列表中的点一个饮料,它有多种规格(常温、冰),这样放到购物车列表中就可能出现2个相同id的饮料。 如下图所示,其中我要对百事可乐进行拷贝一份,然后各修改它的属性值为常温/加冰。 一、浅拷贝与深拷贝的区别 在Java语言中需要拷贝一个对象时,有两种类型:浅拷贝与深拷贝。 浅拷贝:只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。 深拷贝:只是拷贝了源对象的值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。 浅拷贝示例: public class Food { String name; String type; public Food(String name,String type){ this.name = name; this.type = type; } } public void main(){ Food food1 =new Food(); food.name ="百事可乐"; food.type = "冰"; //拷贝 Food food2 =food; food.type= "常温"; } 结果:food1和food2的 type都为“常温”。 接下来,我们来看看深拷贝的方法。 二、深拷贝的方法 (1)构造函数 通过在调用构造函数进行深拷贝,形参如果是基本类型和字符串则直接赋值

微信公众号请求验证加密比对

不想你离开。 提交于 2020-08-17 13:51:36
import org.apache.commons.lang3.StringUtils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; /** * @ProjectName: WxTest * @Author: huat * @Date: 2020/6/18 10:49 * @Version: 1.0 */ public class WxService { //此处token的值需要和公众号填写的token值一致 private static final String TOKEN = "abcdefg" ; /** * 验证请求是否来自微信 * @param timestamp * @param nonce * @param echostr * @return */ public static boolean check(String timestamp,String nonce,String echostr){ /** * 验证签名步骤 * 1 )将 token 、 timestamp 、 nonce 三个参数进行字典序排序 * 2 )将三个参数字符串拼接成一个字符串进行 sha1 加密 * 3