我是一名学习Java的.NET开发人员。因此,我理解编程的所有基础知识,如循环,变量,函数等。我最大的瓶颈是我不知道我的方式围绕Java的包,就像我使用.NET一样。
这就是这个主题的原因 - 我在哪里可以找到Java中的以下功能?:
System.Diagnostics - 我可以在哪里使用秒表,程序断点和记录器等东西?
是否有Java等效的.NET性能计数器?
Java中的弱键是什么?我刚刚遇到了一个在Java中使用弱键的集合,所以我在这里问。 :)
由于
答案 0 :(得分:3)
使用弱密钥的字典仅保留对每个密钥的弱引用,因此如果密钥有资格进行垃圾收集,则可能会收集该密钥并且字典将有效地丢失该条目。有关弱引用的更多信息,请参阅WeakReference的文档。
System.Diagnostics:我不知道任何等效的秒表和程序断点。要进行日志记录,请查看java.util.logging或第三方软件包,例如log4j。
性能计数器:可能有某种方法将一些JVM连接到Windows性能计数器中,但我从未见过它们。有VisualVM你可能会发现它们对某些相同的东西很有用。
答案 1 :(得分:1)
如果您只是想要时间,可以使用System.nanoTime()。
long start = System.nanoTime();
// a bunch of code
long end = System.nanoTime();
System.out.println("Elapsed time in seconds: " + (end-start)/1000000000.0);
答案 2 :(得分:1)
JAMon是一个可能符合您要求的开源Java监控库。
此外,任何绩效/管理计数器都通过Java Management Extensions (JMX)
公开然后你有许多监控控制台:
jconsole
附带Java安装(基于Swing)或者,请查看此other posting,了解如何监控Perfmon中的JMX统计信息。
希望这有帮助。
答案 3 :(得分:0)
对于记录器,包装是:
的java.util.logging
import java.util.loggin.Logger;
...
Logger logger = Logger.getLogger( this.getClass().getName() );
logger.fine( "Hello" );
logger.severe(" Oh oh ");
以下是一些有用的链接:
http://java.sun.com/javase/6/docs/api/java/util/logging/Logger.html
http://java.sun.com/javase/6/docs/api/
http://java.sun.com/javase/6/docs/api/allclasses-noframe.html
答案 4 :(得分:0)
您应该查看http://commons.apache.org/以了解很多其他问题。 Java 1.4.2及更高版本具有java.util.logging
答案 5 :(得分:0)
“弱密钥”的概念来自加密。也许你在想弱参考? .NET和Java都支持弱引用。
答案 6 :(得分:0)
我注意到常见的.NET类驻留在Java.Util中(日期是这些常见类之一 - 我和我确信每个开发人员经常在编程中使用它。)
啊这么弱的密钥与弱引用有关 - 这是我在.NET中熟悉的一个概念。这就结束了这个问题,因为现在已经回答了。谢谢你们!
对于性能监视(计数器),看起来Java中没有内置的功能。再说一遍,性能计数器是一个Windows功能,而不仅仅是.NET中的一类我猜?我正在开发Windows。