Java : performance of the instance without variable

标签 java performance

我有这样一个类:

class Test
{
    public static test getInstance()
    {
        return new test()
    }

    public void firstMethod()
    {
        //do something
    }
    public void secondMethod()
    {
        //do something
    }
    public void thirdMethod()
    {
        //do something
    }
}

在另一个类中,如果我们用不同的方法多次调用 Test.getInstance().methodName(),会发生什么? 在以下代码中,哪一个会更快并且使用低内存

Test.getInstance().firstMethod()
Test.getInstance().secondMethod()
Test.getInstance().thirdMethod()

Test test = Test.getInstance();
test.firstMethod();
test.secondMethod();
test.thirdMethod();

最佳答案

Test.getInstance().firstMethod()
Test.getInstance().secondMethod()
Test.getInstance().thirdMethod()

这将创建三个 Test 类的不同实例,并在每个实例上调用一个方法。

Test test = Test.getInstance();
test.firstMethod();
test.secondMethod();
test.thirdMethod();

将只创建一个实例并在该实例上调用三个方法。

所以这是一种完全不同的行为。显然,既然第一个创建了三个对象,那么它应该占用更多的堆空间。

但是,如果您打算实现单例类,则两者是等效的。

关于Java : performance of the instance without variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27027330/

相关文章:

java - 使用 Java Streams 一次从文本文件中读取 X 行?

mysql - 对于小型 Web 项目,MySQL 或 Oracle 哪个更快?

Java large 性能

java - 为什么 HashMap 比 HashSet 快?

java - fragment 中的 Tablayout bundle - 空对象引用

Java - JSoup 登录 InvestorsHub

python - 使用 NumPy 索引数组对 Python 列表进行切片——任何快速的方法?

ASP.Net 过度使用用户控件

java - 凯撒移位密码,输入异常错误

java - 如何将一个 Gradle 脚本导入另一个?