将局部变量作用域最小化

将变量一开始就声明在头是十分不明智的选择,局部变量最好是在初始使用的时候才声明,而且尽量给定一个值,好处有三,一是容易读程序,二在对应的语句块使用,可以节省开销,三因为在对应的语句块才申明,外围语句块无法获取,比较安全。

for-each优先于传统的for

了解和使用库类,random举例

public class RandomTest {
public static final Random rnd = new Random();
static int random(int n){
return rnd.nextInt(n);//直接使用提供好的方法,这个是很多高级工程师经过严密设计达到的,牛逼。
} public static void main(String[] args) {
int n = 2*(Integer.MAX_VALUE/3);
int x = 0;
for(long y=0;y<100000000;y++){
if(random(n)<n/2){
x++;
}
}
System.out.println(x);
} }

需要精确则避免float和double,使用bigDecimal,或者以更小的为单位使用INT或LONG来计算

基本类型优先于装箱类型,比如 new Integer(42)==new Integer(42) 是同一性的比较而不是值的比较。

public class AutoBox {

    public static void main(String[] args) {
//Long sum = 0L;
long sum = 0;//这一种会比上一种运行快很多,因为不用拆箱装箱。
for(int x = 0 ;x<Integer.MAX_VALUE;x++){
sum+=x;
}
System.out.println(sum);
} }

字符串连接的时候用StringBuilder代替String

应尽量用接口而不是实现类实现,不用接口的情况主要有而, 一是实现类实现了接口中不存在的方法,而我们又依赖于此,二是框架中的基础为类,那我们也应该实现抽象类的实现而不是具体类 。

 List<String> list = new Vector<String>();//这个是比较好的应用,因为实现的是接口,使其对周围代码不依赖。
Vector<String> list2 = new Vector<String>();//这个就相当糟糕

优化格言,不要计较效率得失,不要优化,不要优化,努力编写好的程序而不是快的程序。

最新文章

  1. android开发Preference的使用
  2. MYSQL服务器my.cnf配置文档详解
  3. nodejs表单验证
  4. Ubuntu下Apache+php+mysql网站架设详解
  5. hiho 1182 : 欧拉路&#183;三
  6. c/c++指针基础使用
  7. linux 多线程基础2
  8. CPU 定位高
  9. SpringMVC09异常处理和类型转化器
  10. bounds 和 frame
  11. 深入理解Postgres中的cache
  12. Windows Server 2016-Netdom Join加域并指定OU (一)
  13. struts2框架搭建学习遇到的问题
  14. Linux查看显示编辑文本文件
  15. 施密特正交化 GramSchmidt
  16. Oracle根据时间恢复已删除提交的数据
  17. Servlet案例7:jsp技术及案例
  18. ARP 欺骗攻击与防御
  19. ASP.NET自定义服务器控件
  20. Booting dircetly into Redlink FW from flash

热门文章

  1. (GoRails)使用vue和Vuex管理嵌套的JavaScript评论, 使用组件vue-map-field
  2. jquery选择器和基本操作
  3. python-爬虫-selenium模块
  4. C# 条件表达式max=(a&gt;b)?a:b;含义
  5. (效率低下)77. Combinations C++回溯法 组合
  6. iOS block 机制
  7. 推送证书p12文件转换成pem的命令
  8. 自定义putty主题
  9. Ubuntu云服务器下mysql授权远程登陆
  10. linux下如何添加一个用户并且让用户获得root权限 备用