jdk 8 时区 转换_JDK 8 BigInteger精确缩小转换方法

jdk 8 时区 转换

在博客文章“ Java中Long到Int的精确转换 ”中,我讨论了使用Math.toIntExact(Long)将Long精确地转换为int或者如果无法缩小转换范围则抛出ArithmeticException 。

JDK 8引入了该方法, JDK 8还向BigInteger类引入了类似的缩小转换方法。 这些BigInteger方法是本文的主题。

BigInteger在JDK 8中添加了四个新的“精确”方法:

  • byteValueExact() –尽可能将BigInteger值准确转换为byte
  • shortValueExact() –如果可能,将BigInteger值转换为short
  • intValueExact() –尽可能将BigInteger值准确转换为int
  • longValueExact() –如果可能,将BigInteger值精确转换为long

如上所述,通过JDK 8添加到BigInteger的这四个“精确”方法中的每一个都可以将BigInteger的值缩小到方法名称中的数据类型(如果可能)。 由于所有这些类型( byteshortintlong )的范围都小于BigInteger ,因此在任何情况下, BigDecimal的值都可能比这四种类型中的任何一种都大。 在这种情况下,所有这四个“精确”方法都将引发ArithmeticException而不是悄悄地“将”较大的值“强制”为较小的表示形式(在大多数情况下,这通常是无意义的数字)。

可以在GitHub上找到使用这些方法的示例。 执行这些示例时,输出如下所示:

===== Byte =====
125 => 125
126 => 126
127 => 127
128 => java.lang.ArithmeticException: BigInteger out of byte range
129 => java.lang.ArithmeticException: BigInteger out of byte range
===== Short =====
32765 => 32765
32766 => 32766
32767 => 32767
32768 => java.lang.ArithmeticException: BigInteger out of short range
32769 => java.lang.ArithmeticException: BigInteger out of short range
===== Int =====
2147483645 => 2147483645
2147483646 => 2147483646
2147483647 => 2147483647
2147483648 => java.lang.ArithmeticException: BigInteger out of int range
2147483649 => java.lang.ArithmeticException: BigInteger out of int range
===== Long =====
9223372036854775805 => 9223372036854775805
9223372036854775806 => 9223372036854775806
9223372036854775807 => 9223372036854775807
9223372036854775808 => java.lang.ArithmeticException: BigInteger out of long range
9223372036854775809 => java.lang.ArithmeticException: BigInteger out of long range

在带有JDK 8的BigInteger添加这些“精确”方法是一种受欢迎的方法,因为与数字缩小和溢出相关的错误可能很细微。 拥有一种简单的方法来获得“精确的”缩小是很好的,否则将无法通过异常使这种缩小变得明显。

翻译自: https://www.javacodegeeks.com/2018/06/biginteger-exact-narrowing-conversion-methods.html

jdk 8 时区 转换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA快捷键(Shortcut)官方文档地址

快捷键官方文档地址:https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf

通过OAuth 2.0和Okta使用安全的服务器到服务器通信构建Spring Boot应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 大多数OAuth 2.0指南都围绕用户的上下文,即使用Google,Github…

IntelliJ IDEA for Mac在MacOS模式下添加到收藏夹的快捷键(Add Favorite Shortcut)

快捷键快捷键符号英文名称功能说明Option Shift F⌥⇧FAdd Favorite添加到收藏夹 添加到收藏夹后,你可以按下组合键 Command 2 打开收藏夹窗格,或者直接在视图的左边栏找到『收藏夹』如下图所示:

公有云 私有云 混合云_混合云的承诺,收益和产品

公有云 私有云 混合云云承诺为我们提供所有灵活性。 有机会在需要时访问无限资源并相应地付款。 我们不再需要花费时间安装,配置和维护服务器; 我们被承诺将有更多的时间来“仅仅编码”。 取而代之的是,我们越来越多地锁定供应商&#xff0c…

MVC基础知识

1.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写 2.Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。  通常模型对象负责在数据库中存取数据。主体 3.View&#xf…

MacBook键盘符号

图标介绍⌘Command⇧Shift⇪Caps Lock⌥Option Alt⌃Control↩Enter⌫Delete⌦Fn Delete↑上箭头↓下箭头←左箭头→右箭头⇞Fn ↑ Page Up⇟Fn ↓ Page DownHomeFn ←EndFn →⇥Tab 右制表符⇤Shift Tab 左制表符⎋Esc Escape⏏电源开关键

spring vaadin_在Spring Boot中使用Vaadin的简介

spring vaadin介绍 Vaadin的工作方式依赖于服务器端渲染,因此可以自然地集成到诸如Spring之类的框架中。 Vaadin的Spring集成已经存在了一段时间,并提供了用于在Spring容器中配置和管理Vaadin的工具,如果您希望将Vaadin与Spring Boot结合使用…

vue中生产模式和调试模式_为什么在生产中进行调试是如此诱人?

vue中生产模式和调试模式生产调试 为什么在生产中进行调试是如此诱人? 在我的第一份工作中,我要做的任务之一是修复一个错误,该错误过去在非常复杂的生产系统中有时会发生。 那很简单! - 我想。 我将在开发环境中重现同样的情况&a…

IntelliJ IDEA for Mac在MacOS模式下的编译和运行快捷键(Compile and Run Shortcut)

快捷键快捷键符号英文名称功能说明Command F9⌘F9Make project编译ProjectCommand Shift F9⌘⇧F9Compile selected file, package or module编译选择的文件、包或模块Control Option R⌃⌥RSelect configuration and run弹出 Run 的可选择菜单Control Option D⌃⌥DSel…

android基础知识

第07节 ListView 1.当我们的程序中有大量的数据需要展示的时候,就可以借助 ListView 来实现。ListView 允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。 ListView 的简单用法 1.listView数据的添…

apache derby_Apache Derby数据库用户和权限

apache derby抽象 Apache Derby很棒! 尤其是在微服务环境中,服务的数据(可能)会缩减,并且不需要强大的RDBMS。 Derby很棒,因为它非常易于使用,特别是在涉及用户和权限时,您不需要任何…

IntelliJ IDEA for Mac在MacOS模式下的版本控制/本地历史记录快捷键(VCS and Local History Shortcut)

快捷键快捷键符号英文名称功能说明Command K⌘KCommit project to VCS提交代码到版本控制器Command T⌘TUpdate project from VCS从版本控制器更新代码CommandShiftK⌘⇧KPush commits推送提交,有问题OptionCommandK⌥⌘KPush commits推送提交Control V⌃V‘VCS’…

nutshell_Nutshell中的Java 8语言功能-第1部分

nutshell你好朋友, Java 8发布已经很长时间了,现在越来越多地被使用。 在本文中,我们将讨论以下Java 8主题。 1.功能接口 2.Lambda表达式 3.默认方法 1.功能界面 什么是功能接口? 与一种并且只有一种抽象方法的接口是功能接口…

windows server 2008 R2 命令行的方式创建用户、设置密码

一、使用命令行的方式创建用户、设置密码 (1)标准格式: net user username password / add 例如:建立一个名为lijunxuan、密码为Abc_123的用户 net user lijunxuan Abc_123 /add 二、使用命令行修改旧帐户的密码 &#xff…

IntelliJ IDEA for Mac的快速切换当前主题方案(Quick switch current scheme)

文章目录一、配色方案 (Color Scheme)二、代码样式方案(Code Style Scheme)三、键映射表,即快捷键方案(Keymap)四、视图模式/查看模式/显示模式(View Mode)五、界面外观&…

jpa避免n+1_JPA技巧:避免N + 1选择问题

jpa避免n1介绍 像JPA这样的ORM框架通过帮助我们在对象<->关系数据映射期间避免了很多样板代码&#xff0c;从而简化了我们的开发过程。 但是&#xff0c;它们还给表带来了一些其他问题&#xff0c;N 1是其中之一。 在本文中&#xff0c;我们将简要介绍该问题以及避免这些…

Windows server 2008 基础知识

1、Windows server 2008 安装形式 (1、Virtual (2、Hyper-V (3、VMware 2、对于虚拟内存的大小&#xff0c;建议为实际内存的1.5倍 3、在Windows server 2008系统中安装活动目录的命令是DCPROMO。活动目录存放在域控制器中 4、Windows server 2008支持的两种用户账户&…

Paint X for Mac的用法

文章目录快捷键图形界面介绍快捷键 快捷键说明Command A抓手Command S另存为Command T设置字体Option Command C设置画布大小 Canvas SizeOption Command I设置图像大小 Image SizeShift Command V垂直翻转 Flip VerticalShift Command H水平翻转 Flip HorizontalC…

IntelliJ IDEA for Mac如何替换文件内容中指定的关键词

按下组合键 Shift R 打开替换对话框&#xff08;如下图所示&#xff09;&#xff0c;在对话框中有两个输入框&#xff0c;上面的输入框中输入被替换的关键词&#xff0c;会在指定的范围内查找被替换的关键词&#xff0c;接着在下面的输入框中输入替换的关键词&#xff0c;然后…

海域动态监视监测管理系统_监视和管理备份系统

海域动态监视监测管理系统上一次我们建立一个强大的备份系统时 &#xff0c;现在我们将研究如何监视备份集。 我们需要验证是否正确清理了备份集&#xff08;这称为删除策略&#xff09;&#xff0c;并且它们是一致的&#xff08;称为一致性策略&#xff09;。 备份集可以包含…