sqtds 2012-08-23 11:59
浏览 317
已采纳

静态方法与非静态方法的效率与区别(开涛大哥来接题)

开涛大哥,现在写代码看到以前的项目中有人写dao层全部都是静态方法,这样不需要实例化就可以直接调用。但是现在的ssh框架都是通过spring实例化dao层的对象来设置实例到service层中,这些实例调用的都是非静态的方法。我表示不懂静态方法和非静态方法到底有啥区别,哪种方式更好一些,或者效率更高一些?

  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2012-08-23 12:24
    关注

    1、静态方法一般在工具类中居多,如jdk 的 Arrays、Collections,做工具类使用静态方法还是蛮适合的;这些方法是上下文无关的,需要的数据都是从参数传过来的;
    你们公司的dao层类说明是工具类,可以这么干。

    2、非静态方法:如User有getName方法 这个方法在获取name时需要一个上下文,这个上下文就是当前对象,因此是上下文相关的,所以适合非静态方法。

    Class User {
    private String name;

    public String getName() {
        return this.name;//this就是当前对象,jvm在调用这个方法时自动把当前对象赋值给this这个引用,因此是一种上下文相关的,不同的对象调用这个方法返回的值可能不同
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器