Java:了解静态方法的执行

Him*_*dav 3 java performance

printA内部class AprintB内部有两种方法class B.printA是一种static方法,printB是一种非静态方法.这两种方法都是synchronized.有确切亿个线程两个发射printAprintB每个.

哪种方法执行需要的时间更少?

我对static方法的理解围绕对象创建相关的东西.你知道,如果不需要类obj来调用静态方法.或者util方法可以是静态方法.或者静态方法是全局的,难以进行单元测试.
在这种情况下,我想静态方法的执行会更快,因为它将被创建一次,然后被其他所有线程重用.

Pat*_*han 7

如果你有很多对象和多个处理器核心,你可能会发现printB更快.printA在类对象上同步,因此对它的所有调用都是一次一个地完成.printB在其对象上同步,因此多个printB调用可以并行运行.

您真的需要在程序的上下文中根据程序运行的典型硬件配置对方法进行基准测试.