Java乘法计算错误,Java JRE致命错误:乘法过多
我试图测试Math.pow()与“手动”乘法的速度,并偶然发现这个错误:
A fatal error has been detected by the Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005ac46888, pid=1508, tid=6016
JRE version: Java(TM) SE Runtime Environment (8.0_25-b18) (build 1.8.0_25-b18)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode windows-amd64 compressed oops)
Problematic frame:
V [jvm.dll+0x496888]
Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
生成代码的代码:
long t = System.nanoTime();
for (int i = 0; i < 10000000; i++) {
double val = i*i*i*i*i /* 256 times *i */ *i*i*i;
sum ^= Double.doubleToLongBits(val);
}
System.out.println((System.nanoTime() - t) / 10000000);
我得到这是真的极端的情况,但仍然,这是有效的代码,可能发生的最糟糕的事情应该是Inf的价值,而不是JRE崩溃。这是由oracle描述的真正的标准行为,或只是没有人想要修复的错误,因为如果你看到它,你真的是坏人。
对于使用NetBeans 8.0.2运行的记录
更新1
似乎问题是乘数的大小。
long t = System.nanoTime();
for(int j = 0; j < 10000000; j++) {
int i = j % 50;
double val = i*i*i*i*i /* 256 times *i */ *i*i*i;
sum ^= Double.doubleToLongBits(val);
}
System.out.println((System.nanoTime() - t) / 10000000);
将通过很好。
更新2
试图从控制台运行它
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
并且传递得很好,所以我认为它必须是这个特定的JRE或NetBeans的问题。
Java乘法计算错误,Java JRE致命错误:乘法过多相关推荐
- java xca,keytool 错误: java.lang.Exception: 所输入的不是 X.509 证书
假设:你的服务器是用https部署的,有一天网管给你一个服务器的证书名为:server.cer的证书,需要客户端做一个验证,而在android平台下,这个cer文件是不能应用的,所以需要转换成andr ...
- java通过异常处理错误,java基础之通过错误处理异常
我们在编程过程中,通常需要时刻关注可能遇到的问题,此时可以把问题分为两类:普通问题与异常问题.普通问题:我们可以通过从当前环境中获取到的信息来解决这个问题:而异常问题:在当前环境中获取到的信息并不能解 ...
- java怎么计算幂函数,java中幂指数值的运算代码解析
说到幂指数的运算我们就会用到Math.pow(doublea,doubleb),返回的结果是a的b次方. 在Java中,当我们计算2的n次方时,可以直接用Math.pow来计算.非常方便. 但是,已知 ...
- java提示OLE错误,java – 如何解决JXL错误:jxl.read.biff.BiffException:无法识别OLE流...
我正在尝试从我的.csv文件获取单元格数据,但它得到错误: jxl.read.biff.BiffException:无法识别OLE流 我不明白如何解决这个问题,请给我一些解决方案 这段代码用于jxl ...
- 用Java实现分数加减和乘法计算
用Java实现分数加法和乘法计算(新手) 直接上代码,分别手动输入两个分数的分子和分母 import java.util.Scanner; public class Main { public sta ...
- java 高效计算99乘法表_【九九乘法表】九九乘法表学习攻略 九九乘法表快速记忆小诀窍...
[九九乘法表]九九乘法表学习攻略九九乘法表快速记忆小诀窍 很多孩子的九九乘法表还是背的不熟练,下面是精心为大家整理的九九乘法表学习攻略,欢迎阅读.更多九九乘法表学习攻略相关内容请关注实用资料栏目! & ...
- Java位运算不一定比乘法快 (关于java数据运算的一些思考)
wtf???Java乘法会比位运算快??你一定是在逗我!!哈哈哈,当时也困扰了我,让我们继续向下看. 我们学习c的时候,都会遇到位运算快于乘法运算的情况,当时老师讲的是计算机只有加法运算,乘法运算的运 ...
- 99乘法表(java版)
public class chengfabiao99 {public static void main(String[] args) {//外循环控制行数for(int i=1;i<10;i++ ...
- 九九乘法表(Java)
九九乘法表(Java) public class ForDemo0 {public static void main(String[] args) {for (int i = 1; i <= 9 ...
最新文章
- Conv1D和Conv2D的区别
- 如何通过 BAPI 更新 PO 采购订单中的 confirmation tab 中的 confirmation date.
- OpenCASCADE:Modeling Algorithms模块之布尔运算
- CListBox用法总结
- 两个企业级产品设计思路:流程效率指标功能生命周期长度
- POI不同版本替换Word模板时的问题
- 预告:公共语言运行库(CLR)开发系列课程(4):COM Interop进阶
- 腾讯会议开放API接口,为企业打造专属的“腾讯会议”
- javascript数据结构与算法 --- 高级排序算法
- java中osend,如何从java o javafx向windows任务栏发送信息
- TCP and UDP
- 离散数学及其应用(第七版黑书)笔记
- 墨尔本大学计算机博士好吗,成功申请到墨尔本大学博士和全奖的经历
- Cygwin 安装使用
- matlab 保存图片大小尺寸_改变figure大小存储图片(matlab)
- 成长型思维方式对工程师的至关重要
- R语言第十讲 逻辑斯蒂回归
- Be An Effective Engineer
- 如何在 Linux 中使用 Calibre 将 PDF 文件转换为 EPUB 格式?
- 使用声网的RTM SDK轻松给angular应用加上实时聊天功能
热门文章
- freemarker中运算符_freemarker常见语法大全
- mysql导入报编码错误问题解决
- 用java解决约瑟夫循环问题,Java实现循环列表解决约瑟夫环问题
- c语言学习进阶-C语言程序出错处理
- Unity开发《一起来捉妖》教程 | 4.抛掷封妖灵珠
- 用于存储过程的ASP.NET Core Blazor和EF Core原始SQL查询
- Abp Vnext应用程序项目中添加docker支持的小结
- Ubuntu 19.10“Eoan Ermine”正式发布
- MVC安全:打破固定会话
- 一般服务器显示闪存多少合适,现在服务器一般内存多大合适