黑马程序员技术交流社区

标题: 效率问题 [打印本页]

作者: 杨道红    时间: 2014-1-9 21:19
标题: 效率问题
本帖最后由 杨道红 于 2014-1-10 19:50 编辑

分析利弊:
看过毕老师第21天最后一个视频,讲的是存储5个学生信息包含语数外三门课程成绩,按成绩总分排序。
在这个程序中,毕老师的学生工具类有2个方法,static Set<student> getStudents()和static void write2File(Set<Student> stus)
而我写的学生工具类中也有2个方法,但在方法外申明了一个private TreeSet<Student> ts = null; 在我的getStudents()方法中定义了TreeSet具体实例,将值记录。在write2File()就直接取出TreeSet中数据。
我定义的方法都不是静态的。毕老师定义的方法都是静态的。
这两种方式效率如何?谁更优?
作者: wodenhaowzg    时间: 2014-1-10 03:40
对于静态方法与非静态方法他们之间效率问题,可以说有点差别,但基本可以忽略。真正要明白的是,该方法是否该用静态。
被static修饰的成员变量和成员方法独立于该类的任何对象,static对象可以在它的任何对象创建之前访问,无需引用任何对象。即该方法如果没有必要访问对象外部时,最好将该方法设置为静态。因为会被更快地调用,因为她不需要一个虚拟函数导向表。比如工具类就是最好例子。
即静态方法与普通方法的区别在于:普通方法多了一两次引用的查找时间。这个时间可以忽略不计

但不宜过多设置静态成员或方法,静态的弊端就不多说了,合适才最重要。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2