java - 在旧的和奇异的 JVM 上,java.io.BufferedInputStream 的默认缓冲区大小是多少?

标签 java history bufferedinputstream

我一直在为一篇关于 java.io.BufferedInputStream 和缓冲区的博客文章做一些研究。显然,这些年来,默认值已经从可怜的 512 字节增长到 Sun 的 Java 7 实现时的 8192 字节,甚至在 JavaDocs in JDK 1.1.8 中明确指定。 .我的问题也提出了who/what deciedes what the default should be的问题--它不像我预期的那样黑白分明。

我很好奇每个版本发布时的默认缓冲区大小是多少,以及它在其他奇特的 JVM 中可能是什么。到目前为止,我已经通过源代码、JavaDocs 或 Sun 1.0、1.1、1.4、Java 5、Java 6 和(再次自以为是) Sun 的 Java 7 JVM 错误报告对其进行了追踪。

我没能找到的是这个值

  • Sun JDK 1.2 的 JVM 实现
  • Sun JDK 1.3 的实现
  • 任何其他实现的值(value)(如 IBM 或其他)

所以,我想知道这些值是什么以及我可以在哪里找到对它们的引用?

或者,如果那里有任何 SOpedians 可能有权访问其中一个装置,那是不可能的。如果是这样,你能编译并运行下面的代码,然后在这里报告吗?或者,你知道吗

import java.io.BufferedInputStream;
import java.io.InputStream;

public class BufferSizeDetector extends BufferedInputStream {
    public static void main(String[] args) {
        BufferSizeDetector bsd = new BufferSizeDetector(null);

        System.err.println(System.getProperty("java.version"));
        System.err.println(bsd.getBufferSize());
    }

    public BufferSizeDetector(InputStream in) {
        super(in);
    }

    public int getBufferSize() {
        return super.buf.length;
    }
}

最佳答案

Mac OS X Tiger 10.7.0,Apple 提供的默认 VM:

Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)

然后:

1.6.0_26
8192

关于java - 在旧的和奇异的 JVM 上,java.io.BufferedInputStream 的默认缓冲区大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2095269/

相关文章:

java - 尝试在数据库中保存新实体,但生成的 ID 为空

java - 使用 BufferedInputStream 下载无法正常工作

css - Flex 在应用程序下方附加历史跟踪元素

java - 如何在Java Rest API中获取InputStream文件的真实路径

java - BufferedInputStream 到字符串的转换?

java - 将 RecyclerView 代码直接从 Activity 移动到 Fragment,这些错误是什么意思?

Java布局问题

java - 提交到 ScheduledExecutorService 的任务在 "waiting"运行时会做什么

lisp - Lisps 何时/为何开始使用分号进行注释?

android - 有历史的EditText