如果javac后运行如下程序:
class runhang {
public static void main(String[] args){
System.out.println("Test1");
double d = Double.parseDouble("2.2250738585072012e-308");
System.out.println("The value of D is: " + d);
}
}
就会发现程序hung了,并且某一核的CPU使用率接近100%, 查看相应的thread dump是这样:
"main" prio=10 tid=0x08058800 nid=0x8bf runnable [0xb7fce000..0xb7fcf1f8]
java.lang.Thread.State: RUNNABLE
at sun.misc.FloatingDecimal.countBits(FloatingDecimal.java:86)
at sun.misc.FloatingDecimal.doubleToBigInt(FloatingDecimal.java:205)
at sun.misc.FloatingDecimal.doubleValue(FloatingDecimal.java:1463)
at java.lang.Double.parseDouble(Double.java:510)
at runhang.main(runhang.java:4)
如果编译如下程序,发现javac会hung住,CPU同样会有单核100%现象:
class compilehang {
public static void main(String[] args){
double d = 2.2250738585072012e-308;
System.out.println("Test: " + d);
}
}
相应的thread dump是:
"main" prio=10 tid=0x08058800 nid=0x91b runnable [0xb7fce000..0xb7fcf1f8]
java.lang.Thread.State: RUNNABLE
at sun.misc.FloatingDecimal.doubleToBigInt(FloatingDecimal.java:201)
at sun.misc.FloatingDecimal.doubleValue(FloatingDecimal.java:1463)
at java.lang.Double.valueOf(Double.java:475)
at com.sun.tools.javac.parser.Parser.literal(Parser.java:526)
at com.sun.tools.javac.parser.Parser.term3(Parser.java:952)
at com.sun.tools.javac.parser.Parser.term2(Parser.java:686)
at com.sun.tools.javac.parser.Parser.term1(Parser.java:657)
at com.sun.tools.javac.parser.Parser.term(Parser.java:613)
at com.sun.tools.javac.parser.Parser.term(Parser.java:595)
at com.sun.tools.javac.parser.Parser.expression(Parser.java:585)
at com.sun.tools.javac.parser.Parser.variableInitializer(Parser.java:1446)
at com.sun.tools.javac.parser.Parser.variableDeclaratorRest(Parser.java:2074)
at com.sun.tools.javac.parser.Parser.variableDeclaratorsRest(Parser.java:2045)
at com.sun.tools.javac.parser.Parser.variableDeclarators(Parser.java:2028)
at com.sun.tools.javac.parser.Parser.blockStatements(Parser.java:1557)
at com.sun.tools.javac.parser.Parser.block(Parser.java:1462)
at com.sun.tools.javac.parser.Parser.block(Parser.java:1476)
at com.sun.tools.javac.parser.Parser.methodDeclaratorRest(Parser.java:2532)
at com.sun.tools.javac.parser.Parser.classOrInterfaceBodyDeclaration(Parser.java:2481)
at com.sun.tools.javac.parser.Parser.classOrInterfaceBody(Parser.java:2408)
at com.sun.tools.javac.parser.Parser.classDeclaration(Parser.java:2253)
at com.sun.tools.javac.parser.Parser.classOrInterfaceOrEnumDeclaration(Parser.java:2191)
at com.sun.tools.javac.parser.Parser.typeDeclaration(Parser.java:2180)
at com.sun.tools.javac.parser.Parser.compilationUnit(Parser.java:2126)
at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:509)
at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550)
at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:801)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
at com.sun.tools.javac.main.Main.compile(Main.java:353)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:69)
at com.sun.tools.javac.Main.main(Main.java:54)
呵呵,有意思吧,当然这么严重的BUG,Oracle自然得运用FPU。
至于BUG内幕,大家可以参考http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
分享到:
相关推荐
NB/T47013.3-2015承压设备无损检测第3部分:超声检测
1637679600000_com.eg.android.AlipayGphone-main.2nd
NB-IoT_物联网精品资料大全33个合集: 5G测试需求及热点方案研究NB-IoT专题.pdf eMTC(eRAN12.1_04).pdf Feature_Perspectives_-_NB-IoT.pdf Huawei-NB-IoT-Partner-List-Issue-2.0.pdf HW-NB-IoT 参数权限申请.pdf ...
AreTheseLinesStraight-source.nb BoilingPointOfWaterOnSeveralPlanets-source.nb CassiniSpaceflight-source.nb CellularAutomataOnTrivalentNetworks-source.nb CIEChromaticityDiagram-source.nb CogwheelDrive-...
NB T 47018.1~NB T47018.5-2017承压设备用焊接材料订货技术条件和编制说明;NB T 47018.1~NB T47018.5-2017承压设备用焊接材料订货技术条件和编制说明
libopencore-amrnb.a libopencore-armwb.a 支持arm64
NB/T 47003.2-2009 固体料仓
libopencore-amrnb.a是针对8kHZ采样速率的,并提供了encode和decode的方法 libopencore-amrwb.a是针对16Khz采样速率的,不过只提供了decode的方法
能源局2018版充电设备标准,替代2013版。国网、南网以及政府招标等一般都需要满足能源局的标准,大家可以仔细研读一下,标准本身是国标的一个解释以及补充
支持iOS7.1 arm64,用于对语音进行amr格式编码解码。
ASME BPVC.III.2-2021 Rules for Construction of Nuclear Facility Components-Division 2-Code for Concrete Containments - (核设施部件建造规则第2部分混凝土安全壳规范)
amrnb-11.0.0.0.tar.bz2 amrwb-11.0.0.0.tar.bz2 faac-1.28.tar.gz faad2-2.7.tar.gz ffmpeg-4.0.2.tar.bz2 freetype-2.9.1.tar.bz2 lame-3.99.5.tar.gz last_x264.tar.bz2 libdca-0.0.2.tar.gz libogg-1.1.3.tar.gz...
libopencore-amrnb.a及libopencore-amrwb.a支持arm64
amrnb-6.1.0.4.tar.bz2 faac-1.26.tar.gz faad2-2.7.tar.gz a52dec-0.7.4.tar.gz libdca-0.0.2.tar.gz x264-snapshot-20100330-2245.tar.bz2 yasm-0.7.1.tar.gz xvidcore-1.1.3.tar.gz libvorbis-1.1.2.tar.gz ...
资源来自pypi官网。 资源全名:nb_log-3.2.tar.gz
cmake-3.25.1-windows-x86_64-1.msi
基于NB-IoT的生猪养殖环境监控系统设计.pdf 基于NB-IoT的生猪养殖环境监控系统设计.pdf 基于NB-IoT的生猪养殖环境监控系统设计.pdf 基于NB-IoT的生猪养殖环境监控系统设计.pdf 基于NB-IoT的生猪养殖环境监控系统设计...
ffmpeg-3.0.2.tar.bz2 a52dec-0.7.4.tar.gz amrnb-11.0.0.0.tar.bz2 amrwb-11.0.0.0.tar.bz2 faac-1.28.tar.gz faad2-2.7.tar.gz lame-3.99.5.tar.gz last_x264.tar.bz2 libdca-0.0.5.tar.bz2 libogg-1.3.2.zip ...
webapp_nb.w1-jfw1.0.4-struts1.2.9-axis1.3.zip
IEEE802.15.4z-2020最新完整版。共享出来大家共同学习了解。对IEEE802.15.4-2020中文版...后续上传802.15.4系列协议标准相关更多内容,例如:802.15.4g(LoRa)、805.15.4z(UWB)、还有常用的ZigBee、NB-IoT等等相关资料。