Tôi đã sử dụng nhiều lần nhưng tôi chưa bao giờ đọc nhiều về cách chúng thực sự hoạt động. Tôi cũng không biết nhiều về họ ngoài luồng đó chỉ là một phép ẩn dụ. Một luồng chỉ biểu diễn một chuỗi các byte. Tôi không biết nhiều về cách chúng thực sự hoạt động, tôi đoán việc mở một luồng tệp trong Java tương tác với hệ điều hành có chức năng cung cấp "con trỏ" cho luồng.Các luồng trong Java ảnh hưởng đến mức tiêu thụ bộ nhớ như thế nào?
Về cơ bản, câu hỏi của tôi là cách luồng ảnh hưởng đến mức tiêu thụ bộ nhớ. Khi bạn có ví dụ một dòng đầu vào và bạn bắt đầu đọc từ nó, bạn chỉ bắt đầu tăng mức tiêu thụ bộ nhớ với số lượng byte được đọc? Khi mở một dòng trong Java bạn không thực sự tải toàn bộ tập tin trước khi bạn bắt đầu đọc? Nếu bạn đọc từ một luồng và ghi trực tiếp vào luồng khác, bạn chỉ tăng bộ nhớ với số byte mà bạn đã đọc (và có khả năng có trong bộ đệm)? Nếu bạn đọc byte vào một mảng byte trong java thì bạn tăng mức tiêu thụ bộ nhớ với kích thước của tệp?
Có thể âm thanh như một câu hỏi kỳ lạ nhưng tôi có thể cần một số hướng dẫn/chỉnh sửa về sự hiểu biết của mình. Cảm ơn.
Bạn có một lời giải thích rất hay [ở đây] (http://www.ibm.com/developerworks/library/j-zerocopy/index.html) không sao chép. Ngoài ra nó giải thích các bộ đệm và sử dụng bộ nhớ. –