2013年12月24日

Should .close() be put in finally block or not?

摘要: The following are 3 different ways to close a output writer. The first one puts close() method in try clause, the second one puts close in finally clause, and the third one uses a try-with-resources statement. Which one is the right or the best? 阅读全文

posted @ 2013-12-24 22:21 RobertC 阅读(585) 评论(0) 推荐(0) 编辑

浅析 public static void main(String[] args)

摘要: Java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法(注意是方法,而不是其他的,例如代码块)就是main()方法。通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用 阅读全文

posted @ 2013-12-24 10:19 RobertC 阅读(4894) 评论(1) 推荐(0) 编辑

2013年11月19日

基本排序算法之堆排序

摘要: 1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法(Heap Sort )。(二叉)堆数据结构是一种数据对象,它可以被视为一棵完全二叉树,树中每个节点与数组中存放该节点的那个元素对应,树的每一层都是填满的,最后一层可能除外(最后一层从最左边节点的左子树开始填。堆氛围两种:最大堆(大根堆)和最小堆(小跟堆)。一个最大堆可以看成一棵完全二叉树和一个数组(见图一),圆圈中的数字表示书中每个节点存储的值,及诶单那上方的数字表示对应的数组下标。图一中树的高度为小堆的组织方式与最大堆恰好相仿。使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 阅读全文

posted @ 2013-11-19 15:58 RobertC 阅读(457) 评论(0) 推荐(0) 编辑

导航