在最美的地方等你 2022-11-15 11:07 采纳率: 100%
浏览 7
已结题

使用相同变量是每次用get()方法效率高还是使用get后的新变量效率高?

获取同一个变量时,是先用get方法获取后取个变量名后使用这个变量名,还是说每次使用的时候都去调用get方法?我纠结的是效率问题以及代码的可读性和简洁性.

以下是我自己写的测试代码,希望您可以通过代码理解我的意思和疑问:

// 第一种get方式
    Invoices invoices = new Invoices();
        invoices.setId(123456789L);
        System.out.println("开始时间" + System.currentTimeMillis());
        System.out.println(invoices.getId());
        System.out.println(invoices.getId());
        System.out.println(invoices.getId());
        System.out.println("结束时间" + System.currentTimeMillis());

// 第二种取值后使用的方式
        Invoices invoices2 = new Invoices();
        invoices2.setId(123456789L);
        Long id = invoices2.getId();
        System.out.println("开始时间" + System.currentTimeMillis());
        System.out.println(id);
        System.out.println(id);
        System.out.println(id);
        System.out.println("结束时间" + System.currentTimeMillis());
运行多次后发现第二种方式似乎消耗时间更短一点,但是差别不是很大.我的Id是Long类型,这种长数字型才稍微体现了一些性能上的差异,但是如果换成字符串且字符串较短则效率无差异.
期望您的解答谢谢.
  • 写回答

2条回答 默认 最新

  • Silwings银翼 2022-11-15 11:33
    关注

    首先,只要你get方法里面没有复杂逻辑,只是一个简单的return this.id;,是基本可以忽略差异的.但是如果是一个有类似要创建一个对象或者查找的方法,那建议可以只执行一次就执行一次.

    第二,你的这个测试代码没有参考价值.如果要统计时间,就不要写输出语句,输出语句是个耗时操作,打印同一个内容两次执行时间也不一致.如果你的测试可以忽略这个时间误差就没事,但是你这个测试用例明显是不能忽略的.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 11月15日

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容