向更高层次迈进!养成良好的习惯与技巧.结合本人的经验和理解,总结出了以下良好的开发习惯和技巧,向更高层次迈进!本人会经常更新此贴,
1.注释
为代码加注释,是一个良好的习惯。随着时间的流逝,有的时候,自己加的注释可能都记不清楚了。为代码加注释,既是为了自己,也是为了他人。笔者在接管同事代码的时候,就出现过“无注释”的代码段,维护起来真是痛苦之极。
2.知识管理
把开发中,解决的难题,小demo,小心得,都沉淀下来。为以后开发提供宝贵的参考。所谓:“公预善其事,必先利起器”,“磨刀不误砍柴工”。好多人干了若干年开发,仍然是在重复以前的的工作,就是因为没有把知识管理、积累起来。可以发发论坛,自己整理笔记等等,这样是不是更好呢?
3.格式化代码
使用Eclipse或者其他基于eclipse开发的收费开发工具的朋友都知道,ctrl+shift+f可以格式化代码,自动为你对齐。这也是个很良好的习惯。这样代码直观看上去,会很舒畅。方便自己,方便他人。
4.良好的命名规范和编程规范
随着软件工程和软件开发技术的发展,现在行业内出现了许多命名和编程规范。但有些规范还是通用的。1)驼峰式命名;2)英文单词命名,尽量避免中文拼音和无意义的命名;3)不要使用goto语句;针对JAVA语言,更有一些特定的命名规范:
1) 包名:简单,小写
2) 类,接口:首字母大写
3) 方法:首字母小写,驼峰式命名
4) 常量:全部大写,单词之间用下划线分隔
5) 局部变量:一般都是单词首字母或者缩写
6)……
5.闹钟定时休息
身体是革命的本钱,有的时候短短10分钟的休息,可以大大的提高你的工作效率并缓解你的压力。上午10点,下午15点左右,是不是该休息休息呢?即使是晚上奋战,那更应该注意平时规律的休息。
6.懂得分享和感恩
在论坛上看到别人写的好帖,要懂得感恩;自己有了心得体会,要懂得与人分享.这样才能构造一个良好的学习交流环境.
7.编程小技巧
有时候在面试的时候,你回经常被测试去做非常easy的小程序?但你知道其中的奥妙有多少呢?其实一个是看你的编程思路,一个是看你的代码规范,更重要的是看你是否老练。
1)空字符串判断
String obj = null;
System.out.println("".equals(obj)); //推荐,老程序员都会这么写来回避NullPointerException
System.out.println(obj.equals("")); //空指针异常
2)指定具体的Exception,而不是所有异常的捕捉方式都一样。如果在面试中,考官让你写个非常非常简单的JDBC连接程序,你会觉得这么easy的程序还考我?其实你并没有领会到其中的奥妙,字你写完的程序和下面的对比之后,你会得到什么启发呢?是不是具体的Exception捕捉,看上去程序逻辑更清晰一些呢?
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) {
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
//new oracle.jdbc.driver.OracleDriver();
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:TEST", "scott", "tiger");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while(rs.next()) {
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt("deptno"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
rs = null;
stmt = null;
conn = null;
e.printStackTrace();
}
}
}
}
3)字符串拼接尽量使用 StringBuffer 的append方法来拼接。而直接使用”+”来连接String类型。会增加内存和CPU的开销。String字符串拼接的原理如下
String str1 = “a”;
String str2 = “b”;
str1 = str1 + str2;
内存上,他先会开辟出一个新的内存空间,存放str3 = str1+str2,然后再把str3的引用交给str1.如果使用StringBuffer呢?则是在str1后面“接”上的,完成过程只后str1,str2俩个对象。
CPU上,想必写个循环1000次的拼接程序,大家就会明显的看出来吧。下面代码,运行看看吧。
//1秒=1000毫秒
public class Test {
public static void main(String[] args) {
String str = "";
StringBuffer sb = new StringBuffer();
long start = 0L;
long end = 0L;
// 使用String
start = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
str = str + i;
}
end = System.currentTimeMillis();
System.out.println("使用String:" + (end - start) + "毫秒");
// 使用StringBuffer
start = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
sb.append(i);
}
end = System.currentTimeMillis();
System.out.println("使用StringBuffer:" + (end - start) + "毫秒");
}
}
4)尽量减少IO操作,因为IO操作对计算机而言是最耗费资源的操作之一.好多朋友喜欢在调试程序的时候用System.out.println();而在项目发布的时候,没有删除这些打印语句,造成程序的cmd处混乱,而且程序运行效率低下。即使使用了,在当天,就应该及时“清理”这些打印,为别人、为自己缔造一个干净,可读性强的代码环境。下面就是一个打印浪费资源的例子。试想一下,如果你的循环数据处理量非常大,上千万条的记录。你是不是要想一下效率问题呢?
//1秒=1000毫秒
public class Test {
public static void main(String[] args) {
StringBuffer sb;
sb = new StringBuffer();
long start = 0L;
long end = 0L;
// 使用println
sb = new StringBuffer();
start = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
sb.append(i);
System.out.println(i);
}
end = System.currentTimeMillis();
System.out.println("使用String:" + (end - start) + "毫秒");
// 没有println
sb = new StringBuffer();
start = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
sb.append(i);
}
end = System.currentTimeMillis();
System.out.println("使用StringBuffer:" + (end - start) + "毫秒");
}
}