記憶體溢位問題

daimt發表於2004-01-15
JavaBean:

package memory;

import java.io.*;

public class OutOfMemoryBean2{
private FileInputStream fin = null;
StringBuffer strBu = null;
public OutOfMemoryBean2(){
try {
fin = new FileInputStream("E:\\test.txt");
}catch (Exception ex) {
System.out.println(ex.toString());
}
strBu = new StringBuffer();
}

public String getFile(){
int ch = 0;
try {
while((ch = fin.read()) != -1){
strBu.append((char)ch);
}
fin.close();
}catch (Exception ex) {
System.out.println(ex.toString());
}

return strBu.toString();
}

public static void main(String[] args){
OutOfMemoryBean2 outOf2 = new OutOfMemoryBean2();
String str = outOf2.getFile();
System.out.println(str);
}
}

JSP:

<HTML>
<%@ page contentType="text/html; charset=GB2312" %>
<jsp:useBean id="memory2" scope="page" class="memory.OutOfMemoryBean2" />
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<FORM METHOD=POST ACTION="">
<%
String str = memory2.getFile();
%>
<h2>頁面載入結束</h2>
</FORM>
</BODY>
</HTML>

test.txt 檔案是比較大的檔案,在 Tomcat 下會不會由於Tomcat主執行緒的存在,每
一次重新整理頁面都生成一個新的字串,而以前的字串還在消耗記憶體?我在做實驗時剛
開始記憶體在增加,但增加到一定程後不再增加或增加的很少。java 在釋放空間時是不是
需要多少記憶體就釋放多少?我產生若干個這個頁面後,服務會不會死掉。

相關文章