Java 有没有办法找出创建的对象的数量?

Java 有没有办法找出创建的对象的数量?,java,object,Java,Object,有没有办法找出创建的对象的数量? 例如 如果我需要找到为下面的代码段创建的对象的数量,我如何才能完成? 代码: 是的--您可以使用探查器,如。是的--您可以使用探查器,如。在这种情况下,您只需执行以下操作即可 int numberOfObjects = 0; for(String[] s: str) { numberOfObjects += s.length; } 编辑:没关系,我只是在任何事情上永远都很糟糕…在这种情况下,你可以这样做 int numberOfObjects = 0;

有没有办法找出创建的对象的数量? 例如 如果我需要找到为下面的代码段创建的对象的数量,我如何才能完成? 代码:


是的--您可以使用探查器,如。

是的--您可以使用探查器,如。

在这种情况下,您只需执行以下操作即可

int numberOfObjects = 0;
for(String[] s: str)
{
    numberOfObjects += s.length;
}

编辑:没关系,我只是在任何事情上永远都很糟糕…

在这种情况下,你可以这样做

int numberOfObjects = 0;
for(String[] s: str)
{
    numberOfObjects += s.length;
}

编辑:没关系,我只是在所有方面永远都很糟糕…

Netbeans和Eclipse都有很好的分析器,可以为您提供这些信息。如果您可以在其中一个IDE中运行您的项目,这一点就行了。

Netbeans和Eclipse都有很好的分析器,可以为您提供这些信息。如果您可以在其中一个IDE中运行您的项目,则可以使用此功能。

这里有一个小的批处理文件(希望您正在运行的窗口)可供您浏览 使用JDK工具在JDK vm中运行的任何java应用程序的堆

它使用JMAP转储堆,然后使用JHAT运行web服务器,然后您可以浏览(脱机)堆:)

这里有一个小的批处理文件(希望您运行的窗口)可以让您浏览 使用JDK工具在JDK vm中运行的任何java应用程序的堆

它使用JMAP转储堆,然后使用JHAT运行web服务器,然后您可以浏览(脱机)堆:)


-1:我很肯定他不是这个意思。此外,你的代码甚至没有给出正确的答案!无论是谁否决了这个解决方案,他都要求提供一个非常具体的案例,说明这个解决方案工作得非常好。这肯定不是确定用Java创建的对象数量的方法,这种方法存在多个问题:a)它可能会创建更多的对象b)它将代码添加到与您正在检查的代码库相同的代码库中c)它不太可能给出正确的答案,即使在本例中仅举几个例子。数组本身就是对象,您的代码不计算它们。此外,String类的构造函数可能会创建更多的对象。它不计算由
String
隐式创建的对象和数组本身。-1:我很确定这不是他的意思。此外,你的代码甚至没有给出正确的答案!无论是谁否决了这个解决方案,他都要求提供一个非常具体的案例,说明这个解决方案工作得非常好。这肯定不是确定用Java创建的对象数量的方法,这种方法存在多个问题:a)它可能会创建更多的对象b)它将代码添加到与您正在检查的代码库相同的代码库中c)它不太可能给出正确的答案,即使在本例中仅举几个例子。数组本身就是对象,您的代码不计算它们。此外,String类的构造函数可能会创建更多的对象。它不计算由
String
隐式创建的对象和数组本身。Java初学者对“新字符串(String)”和“创建的对象数”的痴迷从何而来?我一次又一次地看到这样的问题,一个初学者似乎不会问自己。有没有一些教科书关注这类问题?Joachim,我不同意——新字符串(“A”)是一个聪明的例子,不容易看到创建了多少对象(在本例中:3或4,取决于“A”是否已经在池中)。是的,初学者倾向于使用它,即使javadoc非常清楚,构造函数是无用的;)Java初学者对“新字符串(String)”和“创建的对象数”的痴迷来自哪里?我一次又一次地看到这样的问题,一个初学者似乎不会问自己。有没有一些教科书关注这类问题?Joachim,我不同意——新字符串(“A”)是一个聪明的例子,不容易看到创建了多少对象(在本例中:3或4,取决于“A”是否已经在池中)。是的,初学者倾向于使用它,即使javadoc非常清楚,构造函数是无用的;)
@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.