作成されるオブジェクトの数を調べる方法はありますか? たとえば、 以下のコードで作成されるオブジェクトの数を調べるにはどうすればよいですか? コード:作成されるオブジェクトの数を調べる方法はありますか?
String [][] str = { {new String("A"),new String("B"),new String("C")}, {new String("D"),new String("E")} };
作成されるオブジェクトの数を調べる方法はありますか? たとえば、 以下のコードで作成されるオブジェクトの数を調べるにはどうすればよいですか? コード:作成されるオブジェクトの数を調べる方法はありますか?
String [][] str = { {new String("A"),new String("B"),new String("C")}, {new String("D"),new String("E")} };
はい - あなたはYourkitのように、プロファイラを使用することができます。用事、私は永遠にすべてのものに本当に悪いんだ...
。これは、これらのIDEのいずれかでプロジェクトを実行できる場合に機能します。
-1:これは彼が何を意味するのかわかりません。さらに、あなたのコードは正しい答えを出すことさえできません! –
誰にでも、このソリューションが間違っていると投票した人に、彼はこのソリューションが完全にうまく動作する非常に特殊なケースを求めました。 –
これは確かにJavaで作成されたオブジェクトの数を確認する方法ではなく、このアプローチには複数の問題があります。 a)より多くのオブジェクトを作成する可能性があります b)あなたと同じコードベースでコードを追加します c)この例でも、 という名前の場合でも正しい答えが得られない可能性があります。 – wsorenson
NetBeansとの両方があなたにこの情報を与える良いプロファイラを持っているEclipseの:あなただけ
int numberOfObjects = 0;
for(String[] s: str)
{
numberOfObjects += s.length;
}
編集を行うことができます。この場合
ここには、JDKツールを使用して、 JDK VMで実行されているJavaアプリケーションのヒープを歩くことができるlitleバッチファイル(実行中のウィンドウが必要です)があります。
それは、あなたが(オフライン)ヒープをサーフィンすることができ、jmapのを使用してヒープをダンプし、その後JHATを使用してWebサーバを実行します:)
「新しいString(文字列)」とその強迫観念を行い、「@echo off
if not [%1%]==[] goto map
cls
echo.
echo Gebruik: map.cmd [pid#]
echo.
echo (JVM 6+ required. You're using : %JAVA_HOME%)
echo.
echo Which PID would you like to use?
echo.
jps -l
echo.
pause
exit /b
:map
if exist c:\jmap.txt del c:\jmap.txt
jmap -dump:file=c:\jmap.txt %1
echo.
echo about to start the web-server on port 8081
pause
start http://localhost:8081
start jhat -port 8081 c:\jmap.txt -J-mx512m
echo.
Javaの初心者のオブジェクトの数は "から来た?私はこの種の質問を何度も見てきました。初心者が自分に尋ねるようなものではありません。そのような質問に焦点を当てたテキストブックがありますか? –
Joachim、私はここで同意しない - 新しいString( "A")は見やすくない、沢山のオブジェクトが作成される(この場合は、 "A"がプール内にあるかどうかに応じて3または4 )。はい、初心者は、たとえjavadocがきれいであっても、コンストラクタが役に立たなくても、それを使用する傾向があります;) –