顾乔芝士网

持续更新的前后端开发技术栈

微信、QQ是如何实现抢红包?


官方实现

算法原理:

  • 抢红包的期望收益应与先后顺序无关
  • 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元。如果需要发其他货币类型的红包,比如区块链货币或者积分,需要自定义一个最小金额。

SpringBoot中六种设计模式应用案例二

前言:

接着上篇的文档来写继续写设计模式。

8.观察者模式

观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。SpringBoot中的事件机制是观察者模式的典型应用,如ApplicationEvent和ApplicationListener。

java互联网架构师,教你学java基本的程序设计结构:大数值+数组

大数值

如果基本的整数和浮点数精度不能满足需求,就可以使用java.math包中的两个很有用的类:

BigInteger和BigDecimal。这两个类可以处理任意长度的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。

使用静态的valueOf方法可以把普通的数值转换为大数值:

Groovy关键字def

简介

本文将介绍Groovy中def关键字。它为这种动态 JVM 语言提供了可选的类型化功能。

除法运算ArithmeticException: Non-terminating decimal expansion

一、背景

今天在计算库存消耗百分比(消耗的库存/总库存)的时候遇到了一个错误,
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

新手注意:Java中使用BigDecimal类时要避免的坑

1、两数相除无限循环小数问题

直接看例子01:

@Test
public void BigNumber_Test () {
    BigDecimal bd = new BigDecimal("10");
    BigDecimal divNum = new BigDecimal("3");
    // 除法遇到除不尽时,这种写法会抛出异常ArithmeticException
    BigDecimal bigDecimal = bd.divide(divNum); // NG java.lang.ArithmeticException
    System.out.println(bd.divide(divNum, 2)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_UP)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_DOWN)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_CEILING)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_FLOOR)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_HALF_UP)); // OK
    System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_HALF_EVEN)); // OK
    System.out.println(bd.divide(new BigDecimal("4"), 2, BigDecimal.ROUND_UNNECESSARY)); // OK
}

Java BigDecimal类型的 加减乘除运算和比较

加法:add 减法:subtract 乘法:multiply 除法:divide

BigDecimal bd1 = new BigDecimal("15");

BigDecimal bd2 = new BigDecimal("20");

BigDecimal bd3;

BigDecimal 详解

BigDecimal 详解

《阿里巴巴 Java 开发手册》中提到:“为了避免精度丢失,可以使用 BigDecimal 来进行浮点数的运算”。

Spring Boot 实例:集成 jBPM 实现请假申请流程及API介绍

引言

jBPM(Java Business Process Management)是一个开源的业务流程管理系统,它提供了一整套工具和服务来帮助开发者构建流程驱动的应用程序。本文将介绍如何使用 Spring Boot 和 jBPM 构建一个简单的请假申请流程,并详细介绍 jBPM 提供的一些核心 API 接口。

web开发源代码案例3-css样式


使用了CSS中类选择器,之前学习的是以结构为主,现在学习CSS主要的就是给结构做一套衣裳,让网页展示出来的效果更好看,更符合我们的观看,所以学习CSS是很重要的一门功课。网页做得好不好看,就看CSS学得怎么样。

<< < 46 47 48 49 50 51 52 53 54 55 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言