A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芦曦 中级黑马   /  2012-8-31 15:41  /  1964 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在编写程序的时候,会有要求说 要尽量使用效率高的方式.
请问这个效率高的方式是指什么?

4 个回复

倒序浏览
本帖最后由 陈莹 于 2012-8-31 15:56 编辑

一个是时间效率,就是指程序运行时间要快,
另一个是内存大小,要尽量少占用内存。
比如说各种排序算法,快速排序,冒泡排序,选择排序等,
他们给相同的数组排序所用的时间就不一样,因为快排所用时间少于冒泡排序,所以快排效率高。
关于内存,我举个例子:
1、for(int i=0;i<5;i++)
2、int i = 0;
     ……
    for(int i=0;i<5;i++)
1中的变量i的作用域小于2中的i
这样1中的i就比2中的i占用内存时间久,所以1的效率就比2高。
     

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我觉得这个可以不同的理解:
一 代码设计的简洁性,尽量减少“冗余”性的东西。
二 运算上的高效率。
       比如说要计算3*4等于多少?
      我们可以有不同的方式:
      1 int temp=3*4;
      2 定义一个计算任意数乘积的方法。这样可以计算任何两个数的乘积,别的类也可以调用。可以认为它比1高效率点。
      3 3<<2 左移2位,因为左移CPU直接可以计算,显然效率最好了。

回复 使用道具 举报
本帖最后由 王得新 于 2012-8-31 16:09 编辑

这个问题我也很在意,我也上网了解了,在这里会大家分享下:
1.用接口代替抽象类,不要同时使用 overload和 override。

2.使用继承表示分类关系,使用组合表示包含关系。

3. 高质量的代码是在重构中完成的。

4.少用异常,多用判断。

5. 将类的属性按种类分块,将方法的实现按功能分块,适度使用对齐。

6.控制代码长度,尽可能不使用 import *。

7. 尽量减少同名类,用包名体现类的层次。如:
     com.google.demokit
     com.google.utils

8.通过iterator,for(还有foreach),while来访问集合的元素。

9. 使用不可变类作为Set和Map的Key值

10.免费使用集合的具体实现,在声明集合时,使用接口。

11.减少创建对象,减少循环的执行代码,减少IO操作,正确使用JDBC编程接口。

12.函数调用时,通过形参传过来的对象必须先判断后使用,避免使用异常。

13. 使用合适的设计模式(好像是12中,毕老师的java教学视频里有,是单例设计模式(又分懒汉式和饿汉式))。

14.尽量将变量表达式申明成变量再使用,在循环的判断中不要直接使用方法调用的返回值,而要将方法的返回值赋给变量,使用这个变量。

15对于一组代码完成一个功能的代码,好把他们封装,放在一个新的方法里面,主方法只是这些子方法的结合。

16.避免建立对象,都知道,一new对象,就会在内存中开辟空间的,内存是宝贵的,所以不要建立无用的对象

回复 使用道具 举报
效率高也就是运算速度快,占用内存少,这个得具体情况具体分析。
我们在编程中会碰到很多这样的例子,比如ArrayList和Vector这两个类差不多,但ArrayList效率高些,但不同步,Vector效率低些,但同步。可根据实际情况进行选择。
又比如,在IO技术中,如果要读一个文本文件,如果要求高效的话,可采用缓冲技术。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马