我有一个简单的应用程序,只有一个JTextArea
和两个按钮。最初加载应用程序时,它使用了大约28MB的内存。当将字符串(具有阿拉伯字母,字符串长度 5000)设置为 JTextArea 时,它显示内存使用量为270MB并且没有释放(对于这个应用程序来说,我注意到 NetBeans 使用的少于那个)。我没有打开任何正在使用该内存的文件。可能的原因是什么以及如何减少内存使用量?
注意:内存使用来自任务管理器。
编辑:
public class FileReadTest extends JFrame {
private JTextArea textArea;
private Jbutton readButton;
public FileReadTest() {
initialize();
}
private void initialize() {
setSize(300, 300);
setTitle("File Reader Test");
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea = new JTextArea();
textArea.setFont(new Font("Times New Roman", Font.Plain, 18))
JScrollPane scrollPane = new JScrollPane(textArea);
readButton=new JButton("ReadFrom File");
readButton.addActionListiner(new AvtionPerformed(ActionEvent ev) {
FileReader reader=null;
try {
//
// Read some text from file to display in
// the JTextArea.
//
reader=new FileReader("myfile.txt");
textArea.read(, null);
} catch (IOException e) {
e.printStackTrace();
}
finally {
try{
reader.close();
}
catch(Exception ex){}
}
}
getContentPane().add(scrollPane, BorderLayout.CENTER);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new FileReadTest().setVisible(true);
}
});
}
}
read
如果我按下按钮或手动复制并粘贴文本,大小写相同。