------------已解决,其他地方的细节错误导致的,但借机全面搜索的过程中学到了很多东西------
使用的是Intellij IDEA编辑器,Java也是内置的。
前一个情况:读取一个0.5秒的wav音频,采样频率是44100,编码是16bit,little endian,很普遍的一种类型。具体操作是创建一个很长的数组,讲byte类型转换为double存入。 结果———
java.lang.OutOfMemoryError: Java heap space
把音频稍微剪断一些,变成0.48秒,就可以了。
随之而来的通过调整内存和heap容量的方法都不能让0.5及更长的wav文件读取成功。而内存的使用在整个程序运行过程中都非常有限:
感觉非常奇怪。
一番搜索之后发现了另一个读取并设置JVM参数的方法,比如这个,但这个是本机安装的Java参数,ProjectStructure里面调用的是内置Java。本机Java是安装Maven时自动安装的,没有jdk,二者应该没有冲突也无关。
IDEA中运行的问题可以总结成:虽然设置的内存和heap很大但只利用了极小一部分,然后就溢出了。是什么因素导致heap空间被局限了呢?