我试图测试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致命错误:乘法过多相关推荐

  1. java xca,keytool 错误: java.lang.Exception: 所输入的不是 X.509 证书

    假设:你的服务器是用https部署的,有一天网管给你一个服务器的证书名为:server.cer的证书,需要客户端做一个验证,而在android平台下,这个cer文件是不能应用的,所以需要转换成andr ...

  2. java通过异常处理错误,java基础之通过错误处理异常

    我们在编程过程中,通常需要时刻关注可能遇到的问题,此时可以把问题分为两类:普通问题与异常问题.普通问题:我们可以通过从当前环境中获取到的信息来解决这个问题:而异常问题:在当前环境中获取到的信息并不能解 ...

  3. java怎么计算幂函数,java中幂指数值的运算代码解析

    说到幂指数的运算我们就会用到Math.pow(doublea,doubleb),返回的结果是a的b次方. 在Java中,当我们计算2的n次方时,可以直接用Math.pow来计算.非常方便. 但是,已知 ...

  4. java提示OLE错误,java – 如何解决JXL错误:jxl.read.biff.BiffException:无法识别OLE流...

    我正在尝试从我的.csv文件获取单元格数据,但它得到错误: jxl.read.biff.BiffException:无法识别OLE流 我不明白如何解决这个问题,请给我一些解决方案 这段代码用于jxl ...

  5. 用Java实现分数加减和乘法计算

    用Java实现分数加法和乘法计算(新手) 直接上代码,分别手动输入两个分数的分子和分母 import java.util.Scanner; public class Main { public sta ...

  6. java 高效计算99乘法表_【九九乘法表】九九乘法表学习攻略 九九乘法表快速记忆小诀窍...

    [九九乘法表]九九乘法表学习攻略九九乘法表快速记忆小诀窍 很多孩子的九九乘法表还是背的不熟练,下面是精心为大家整理的九九乘法表学习攻略,欢迎阅读.更多九九乘法表学习攻略相关内容请关注实用资料栏目! & ...

  7. Java位运算不一定比乘法快 (关于java数据运算的一些思考)

    wtf???Java乘法会比位运算快??你一定是在逗我!!哈哈哈,当时也困扰了我,让我们继续向下看. 我们学习c的时候,都会遇到位运算快于乘法运算的情况,当时老师讲的是计算机只有加法运算,乘法运算的运 ...

  8. 99乘法表(java版)

    public class chengfabiao99 {public static void main(String[] args) {//外循环控制行数for(int i=1;i<10;i++ ...

  9. 九九乘法表(Java)

    九九乘法表(Java) public class ForDemo0 {public static void main(String[] args) {for (int i = 1; i <= 9 ...

最新文章

  1. Conv1D和Conv2D的区别
  2. 如何通过 BAPI 更新 PO 采购订单中的 confirmation tab 中的 confirmation date.
  3. OpenCASCADE:Modeling Algorithms模块之布尔运算
  4. CListBox用法总结
  5. 两个企业级产品设计思路:流程效率指标功能生命周期长度
  6. POI不同版本替换Word模板时的问题
  7. 预告:公共语言运行库(CLR)开发系列课程(4):COM Interop进阶
  8. 腾讯会议开放API接口,为企业打造专属的“腾讯会议”
  9. javascript数据结构与算法 --- 高级排序算法
  10. java中osend,如何从java o javafx向windows任务栏发送信息
  11. TCP and UDP
  12. 离散数学及其应用(第七版黑书)笔记
  13. 墨尔本大学计算机博士好吗,成功申请到墨尔本大学博士和全奖的经历
  14. Cygwin 安装使用
  15. matlab 保存图片大小尺寸_改变figure大小存储图片(matlab)
  16. 成长型思维方式对工程师的至关重要
  17. R语言第十讲 逻辑斯蒂回归
  18. Be An Effective Engineer
  19. 如何在 Linux 中使用 Calibre 将 PDF 文件转换为 EPUB 格式?
  20. 使用声网的RTM SDK轻松给angular应用加上实时聊天功能

热门文章

  1. freemarker中运算符_freemarker常见语法大全
  2. mysql导入报编码错误问题解决
  3. 用java解决约瑟夫循环问题,Java实现循环列表解决约瑟夫环问题
  4. c语言学习进阶-C语言程序出错处理
  5. Unity开发《一起来捉妖》教程 | 4.抛掷封妖灵珠
  6. 用于存储过程的ASP.NET Core Blazor和EF Core原始SQL查询
  7. Abp Vnext应用程序项目中添加docker支持的小结
  8. Ubuntu 19.10“Eoan Ermine”正式发布
  9. MVC安全:打破固定会话
  10. 一般服务器显示闪存多少合适,现在服务器一般内存多大合适