私はソケットを使用したインスタントメッセージ用の小さなJavaネットワークプログラムに取り組んでいます。アプリケーションでは、メッセージはDataOutputStream's
readUTF()
メソッドを使用して読み取られます。メソッドは。を返しますString object
。したがって、新しいメッセージが到着または送信されるたびに、新しいStringオブジェクトがメモリ内に作成され、メモリを消費します。長い間通信した後、メモリ内にいくつかのStringオブジェクトがあります。
それで、これを回避する方法はありますか、またはメッセージを受信する他の方法を試す必要があります。私はJavaネットワークプログラミングとその概念に非常に慣れていません。ありがとう。私は非常に悪いコーディングスタイルを持っていますが、それでも質問を明確にしようと思います。
String recievedMessage = dataInputStream.readUTF();
String messageType = recievedMessage.substring(0, recievedMessage.indexOf("##"));
String message = recievedMessage.substring(recievedMessage.indexOf("##") + 2, recievedMessage.indexOf("$$"));
JTextPane
この後、メッセージオブジェクトはを使用してに挿入されますStyledDocument
。