guava笔记13-Math

Guava针对数学计算,提供了一些很好用的方法,用来完善jdk的math包的不足。

据官方称:guava的math包具有下面优点:

(1)充分测试过,bug少

(2)优化过,性能很好

(3)可读性高

 

Guava的math包用起来就很简单了,都是些静态方法,用的多自然就记得了。

概况的说,主要提供了IntMath,IntegerMath,BigIntegerMath,DoubleMath这四个帮助类。

 

java.math.RoundingMode是JDK自带的一个枚举类型,guava的一些方法也会传入这个参数,用来表示取整的方式。

 

下面大概介绍下guava的math包常用的方法:

(1)Checked计算:这些带checked的方法会在overflow的时候抛出异常,而不像jdk里面的方法,可能会返回一个莫名其妙的结果。

 

 

(2)跟 RoundingMode相关的方法

 

 

(3)其他的方法

 

 

(4)浮点数(DoubleMath)运算相关的方法

 

 

需要说明的是,guava觉得Float的运算,JDK支持的很好了,所以没有提供Float相关的实用帮助类。

 

Java Map初始化赋值全解析:从HashMap到ConcurrentHashMap的8种实战方案 在Java编程中,集合框架是处理数据结构的核心组件,其中Map作为键值对存储的容器,其初始化赋值操作直接影响代码的性能与可维护性。理解Map的底层原理,如哈希表实现、负载因子与扩容机制,是优化Java应用内存效率的关键。掌握不同Map实现类(如HashMap、LinkedHashMap、TreeMap)的特性,能够帮助开发者在不同应用场景(如缓存配置、会话管理、数据转换)中选择合适方案。本文聚焦Java Map初始化赋值的多种方法,涵盖传统put、Java 9+的Map.of工厂方法、Stream API动 阅读详情

相关推荐

Java Swing 贪吃蛇:从 3 个核心类到 100 分通关的 MVC 架构实战

本文详细介绍了如何使用Java Swing和MVC架构开发贪吃蛇游戏。通过分离模型、视图和控制器三个核心类,实现代码的高可维护性和可扩展性,涵盖从基础实现到进阶优化的完整开发流程,是学习Java游戏开发和设计模式的绝佳实践案例。

weixin_30566111的博客 391

Google Guava 数学工具使用详解

Google Guava 数学工具使用详解 数学 数值运算 取整 范围值比较 其他

骑个小蜗牛的博客 5272

企业财报数据处理系统架构与净利润计算引擎实现

数据处理是现代企业信息系统的核心技术,涉及数据采集、存储、计算和可视化等关键环节。在财务领域,数据处理技术需要满足准确性、时效性和安全性等特殊要求。通过分层架构设计,可以构建稳定可靠的财务数据处理系统,其中数据模型设计和计算引擎实现是核心技术难点。以净利润计算为例,需要处理海量交易记录、多币种换算和复杂业务逻辑,这体现了数据处理技术在业务价值转化中的重要作用。在实际应用中,结合Alphabet财报案例分析,数据处理技术能够支撑企业级财务系统的稳定运行,为技术决策者提供可落地的架构方案。

weixin_30512089的博客 434

Guava官方文档中文版(十四)-Math

Guava官方文档中文版(十四)-Math

dzq584462393的专栏 339

Java集合排序:Comparator接口详解与实战技巧

在Java编程中,集合排序是数据处理的基础操作。Comparator接口作为外部比较器,通过实现compare方法定义对象间的比较逻辑,支持灵活的多条件排序。相比Comparable接口,Comparator遵循开闭原则,无需修改原有类即可实现多种排序规则。从技术实现看,Comparator与Java 8的Lambda表达式结合能大幅简化代码,同时支持null值处理、并行排序等高级特性。在实际开发中,电商商品排序、学生成绩排名等场景都依赖Comparator实现复杂业务逻辑。通过合理使用Comparator

weixin_33933118的博客 436

大文件分块上传与目录结构保持技术解析

文件分块上传技术是解决大文件网络传输的核心方案,其核心原理是将文件分割为多个数据块进行并行传输,通过校验机制确保数据完整性。该技术显著提升了传输可靠性,支持断点续传,特别适合云存储、版本控制等场景。在工程实践中,需要处理目录结构保持、并发控制、异常恢复等关键问题。本文结合分块算法、路径标准化等热词,深入讲解如何实现带完整目录结构的大文件可靠传输,涵盖从客户端预处理到服务端重建的全流程解决方案。

weixin_34116110的博客 390

Guava中Math的各个类中方法解读

1.    IntMath 该类是int类型的值的算术运算。 1.1 isPowerOfTwo(int x) public static boolean isPowerOfTow(int x) 该方法是检查一个整数是不是可以换算成2的指数,也就是检查转换成2进制之后是不是只有一个1。其中Java中的Integer.bitCount(x)也可以实现这样的功能,但是bitCount(x)是检查

Husc2009的专栏 5167

Java工具库Guava的数学运算常用方法示例代码

但 Guava Math 的速度通常可以与 Apache Commons 的 MathUtils 相比,在某些场景下甚至还有显著提升;2、Guava Math 的性能经过了精心的设计和调优;Guava Math 提供了若干有溢出检查的运算方法:结果溢出时,这些方法将快速失败而不是忽略溢出。•HALF_EVEN:向最近的整数舍入,其中 x.5 向相邻的偶数舍入。•HALF_DOWN:向最近的整数舍入,其中 x.5 向零方向舍入。•HALF_UP:向最近的整数舍入,其中 x.5 远离零方向舍入。

BADAO_LIUMANG_QIZHI的博客 785

【转】Google Guava 数学运算

       为什么使用Guava Math Guava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败。 Guava Math的性能经过了精心的设计和...

见端而知末 420

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5中间件的完整流程,包括环境准备、依赖调整、Web.xml版本适配、部署配置优化及常见问题解决方案。特别针对信创改造需求,提供了排除Tomcat依赖、处理BES专用starter等实用技巧,帮助开发者顺利完成国产中间件迁移。

weixin_30825581的博客 1099

在Proteus中用80C51模拟4线SPI点亮OLED屏幕

在Proteus里用80C51模拟4线SPI控制OLED屏幕使其显示图案(汇编实现)。

Connor3093的博客 5003

布隆过滤器

我们以演进的方式来逐渐认识布隆过滤器。先抛出一个问题爬虫系统中URL是怎么判重的?你可能最先想到的是将URL放到一个set中,但是当数据很多的时候,放在set中是不现实的。这时你就可能想到用数组+hash函数来实现了。即求出URL的hash值对数组长度取模,得到数组的下标,然后设置table[index] = 1,当然数组刚开始的元素都为0。

小识的博客 2107

PT32F030与MT6826S SPI通讯实战:从硬件连接到数据交互全流程解析

本文详细解析了PT32F030与MT6826S通过SPI通讯的全流程,包括硬件连接、电路设计、SPI外设初始化配置以及数据交互协议实现。通过实战案例和代码示例,帮助开发者快速掌握PT32F030与MT6826S的SPI通讯技术,实现精准的角度和速度数据采集。

weixin_29189373的博客 420

redis缓存穿透之 布隆过滤器

目录 1.什么是布隆过滤器? 2.布隆过滤器的原理介绍 3.布隆过滤器使用场景 4.通过 Java 编程手动实现布隆过滤器 5.利用Google开源的 Guava中自带的布隆过滤器 1.什么是布隆过滤器? 首先,我们需要了解布隆过滤器的概念。 布隆过滤器(Bloom Filter)是一个叫做 Bloom 的老哥于1970年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它

xiaozhegaa的博客 398

5.FxBlue跟单常见问题

fxblue喊单ea和fxblue跟单会在mt4/mt5客户端ea栏目里记录fxblue在跟单复制订单过程中的全面记录。在遇到问题时,我们首先要恢复默认参数尝试,然后再到ea栏找报错提示。 ​ 需要注意的是,是EA选项卡,而不是日志选项卡。 此外,您可以在 MT4/5 软件终端面板的"EA"选项卡中查看跟单记录,您可以通过右键单击 Experts 日志并从 MT4/5 的弹出菜单中选择“打开”来打开每日日志文件以及历史文件。 5.1 No “heartbeat” received 没有收到“心跳” 接收方

weixin_44406393的博客 1874

一文详解数据仓库、数据湖、湖仓一体和数据网格

本文对数据仓库、数据湖、湖仓一体、数据网格四个技术概念进行了辨析,并对它们的优势和局限给出了对比介绍。

oOBubbleX的博客 2595

【SpringBoot框架篇】10.API接口限流实战

文章目录简介限流算法漏桶算法令牌桶算法基于guava的RateLimiter实现引入依赖自定义注解自定义切面类编写web接口压测 简介 对接口限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理 限流算法 常用的限流算法由:楼桶算法和令牌桶算法。 漏桶算法 漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速

皓亮君的博客 1万+

yolov7目标追踪:基于自定义数据集完成检测

目标追踪包含两个阶段:(1)基于自定义数据集,训练yolo目标检测模型;(2)基于检测模型,将实时检测结果传递到StrongSORT追踪算法中,该算法在OSNet基础上结合运动和外观信息,可以跟踪yolo模型检测到的任何物体。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2306

Java StringBuilder在短信批量发送中的高效应用

字符串处理是Java编程中的基础操作,其中StringBuilder作为可变字符序列,通过维护可扩展的字符数组避免了频繁创建对象的性能损耗。在短信营销等需要批量处理手机号码的场景中,合理使用StringBuilder能显著提升拼接效率。通过预分配容量、链式调用等优化手段,实测显示其性能比传统字符串拼接提升达15倍。结合短信平台API对接实践,这种方案特别适合处理高并发下的号码批量发送需求,同时需要注意号码校验、分批处理等工程实践要点,确保系统稳定性和资源利用率。

dechen6073的博客 417

【硬件】LT3763中文手册

1)精确控制输入和输出电流;2) 3000:1真彩色PWM™调光;3) ±1.5%电压调节精度;4) ±6%电流调节精度;5)6V至60 V输入电压范围;6)宽输出范围最高可达55V;7)<2µA关断电流;8)用于负载电流热控制的控制引脚;9)输入和输出电流监控和限制;10)开路、短路和C/10故障检测;11)适用于LED应用的PWM驱动器输出;12)热增强型28引脚FE封装。

qq_39200110的博客 489

Synopsys逻辑工艺库(DC综合)

逻辑库包括仅与综合过程有关的信息且通过DC用于设计的综合和优化。这一信息包括引脚到引脚的时序、面积、引脚类型和功耗以及其他DC需要的必须数据。逻辑库是一个文本(通常扩展名".lib"),通过使用Library Compiler(LC)编译生成带有扩展名名".db"的二进制文件。以SMIC的逻辑综合库为例:库文件下载地址。

baidu_34971492的博客 2424

Caffeine Deep Dive

Caffeine: A High-Performance Java Cache Caffeine is a modern Java in-process cache library featuring: W-TinyLFU eviction: Combines LRU and LFU with a window (1% capacity) for burst traffic and adaptive sizing (0.2%-80%) Lock-free concurrency: Uses MPSC buf

quwenqian的专栏 525

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最常用的Java库一览 (转载)

最常用的Java库一览   分享到: 12 转载自:http://www.importnew.com/7530.html本文由 ImportNew - 邢 敏 翻译自 programcreek。如需转载本文,请先参见文章末尾处的转载要求。 写在前面:   1) 本文列出的名单是根据我自己的调查,并结合个人的经验。有可能是它们不恰恰是最流行的,但至少众所周知的。...

abc123maxiaolong的专栏 178

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java数据类型详解:从基础到内存优化

数据类型是编程语言中定义数据存储与操作方式的核心概念。Java采用静态类型系统,在编译期进行类型检查,包含基本类型和引用类型两大体系。基本类型直接存储值,包括byte、int等8种;引用类型存储对象地址,如String、数组等。理解类型转换规则和内存分配机制(栈/堆)对避免内存泄漏和空指针异常至关重要。在集合框架和JVM层面,泛型擦除和自动装箱机制是常见面试考点。实际开发中,合理选择数据类型能显著提升性能,如循环使用基本类型数组而非包装类集合。Java 8引入的Optional和值类型增强进一步优化了类型系

weixin_30243533的博客 622

2026年AI编程工具企业级工程化实测:京东校招级流水线压力测评

AI编程工具已从代码补全辅助迈向模块设计、测试生成与CI修复的工程级角色。其核心价值不在于单点响应速度,而在于上下文理解深度、错误兜底能力、协作合规性及企业级可信度。当前主流测评多陷于空项目打分,严重脱离GitOps+多环境+权限隔离的真实开发流。本文聚焦‘工程可信度’与‘京东校招测评通过率’两大热词,以Spring Boot微服务基座为沙箱,构建覆盖缓存穿透防护、分库分表路由、OpenAPI自动生成与集成测试的45分钟压力测试场,实测Copilot、CodeWhisperer等六款工具在SonarQube

ctk87443的博客 346

Java List去重性能对比:从HashSet到Stream,实战选型与避坑指南

在Java开发中,数据处理与集合操作是基础且高频的技术点,其中List去重是常见的性能优化场景。其核心原理在于利用哈希表(如HashSet)实现O(1)时间复杂度的查找,从而将整体算法复杂度从暴力循环的O(n²)优化至O(n)。这种优化对于提升系统吞吐量、降低资源消耗具有显著的工程价值,尤其在高并发、大数据量处理等场景下至关重要。实际应用中,开发者需根据是否保留元素顺序、数据规模及内存限制等因素,在HashSet、LinkedHashSet、Stream API distinct()等方法间做出权衡。本文基

weixin_33924770的博客 332
上一篇: guava笔记12-EventBus
下一篇: guava笔记14-Reflection
leadtoit
博客等级 码龄17年 2粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值