以下内容转载自:http://hi.baidu.com/pmzcn/blog/item/9db204e934cc453cb90e2d16.html
1.在JAVA中参数总是以by value方式传递而不是by reference
2.接口优先与抽象类
接口用于定义类型,如需提供部分实现选用 abstract class
可以为每一个接口提供一个抽象类
3.复合优先与继承
4.使用 static, final 和 private, 使类和成员的可访问能力最小化
对不变的data和object reference使用 final
5.改写 equals() 时需遵循的原则
首先使用 == 检查是否指向同一个引用(object reference)
优先考虑使用getClass(),只有在想比较derived class 和 base class 再使用 instanceof
如果 base class 实现了 equals(),应该调用super.equals()
public boolean equals(Object that) {
if (that == this) {
return true;
}
if (that != null && getClass() == that.getClass()) {
User thatUser = (User) that;
if (thatUser.getUsername().equals(this.username) && thatUser.getId().equals(this.id)) {
return true;
}
}
return false;
}
6.改写 equals() 时总是要改写 hashCode
private static final int INITIAL_HASH = 7;
private static final int MULTIPLIER = 31;
public int hashCode() {
int hash = INITIAL_HASH;
hash = MULTIPLIER * hash + id.hashCode();
hash = MULTIPLIER * hash + name.hashCode();
return hash;
}
7.总是要改写 toString()
8.谨慎的实现 Serializable
实现 Serializable 不是加上 implements Serializable 就完了
为继承而设计的类,很少实现 Serializable
9.谨慎的实现 clone
10.优先使用 Array, 然后再考虑 List, Set, Map
11.优先使用 for 遍历集合, 因为 for 比 Enumeration 和 Iterator 更快。
for (int i = 0, n = array.length; i < n; i++) {
}
for (Object object : set) {
}
12.使用基本类型(int, boolean..),可以使代码更快
13.如果其他类型更合适,尽量避免使用 String
14.如果进行字符串拼接,使用 StringBuilder或StringBuffer, 而不是 String
15.如果要求精确计算,避免使用 float 和 double
16.将局部变量作用域最小化,在第一次使用它的地方声明
17.不要从 try 区段中返回
因为如果存在 finally ,会在运行 finally 之后才返回,值可能会被改变
18.可以考虑用 class 代替 enum
19.自己产生表id(唯一标识符,主键),而不是通过数据库自动生成
唯一标识符采用无意义的代理键(如1000),而不是具有业务概念的唯一自然键(如身份证号码)
可以采用GUID,如果不是很必要采用类型为 int 的id比GUID效率更高
20.代码规范很重要
21.单元测试很重要
22.使用版本控制,即使一个人开发也一样
分享到:
相关推荐
这篇心得体会主要围绕“Java设计模式”展开,通过链接到的博客文章(https://huangfeihome.iteye.com/blog/1197887),我们可以深入探讨这些模式以及它们在实际编程中的应用。 首先,设计模式是一种经过时间考验的...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和复用性。本资源包含了2016年6月20日关于Java常用设计模式的源码和作者的心得体会,这对于我们深入...
│ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....
│ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....
│ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....
3.管理员用户:登录功能、退出功能、课程管理、作业管理、资料下载管理、选课管理、留言管理、备忘录管理、心得管理、班级管理、学院管理、系管理、教师管理、学生管理,拥有系统 最高权限。 三、注意事项 1、管理...
│ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....
│ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....
3. **MyMemo**:这个名字可能是“我的备忘录”,可能包含了作者个人的编程心得、技巧或者是解决特定问题的代码片段。它可能涵盖了各种Java编程的实用知识,从基础到高级,比如设计模式、性能优化、数据库连接或者...
文件"所以不能倒下(1).docx"和"身后空无一人(1).txt"的名字看起来像是激励或者哲学性质的内容,可能包含了一些开发者的心得体会或者团队文化,虽然不是直接的编程知识,但它们对保持开发者的精神状态和团队凝聚力...
在实际的博客中,作者可能分享了关于源代码管理、使用特定开发工具的心得体会,或者介绍了如何解决某个技术难题。由于没有具体描述,我们只能猜测内容可能涵盖了编码实践、版本控制、调试技巧或者新工具的介绍。 ...
3. **备忘录**:提供一个记录待办事项和计划的平台,帮助用户管理时间。 4. **信息**:允许用户之间发送消息,促进思想交流。 5. **日志**:用户可以在系统中发布日志,分享心得或记录生活。 6. **资料搜索**:用户...
Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery:prototype...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。
Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。
Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。
【课程设计总结与心得】部分,学生通常会回顾整个开发过程,讨论遇到的挑战、解决问题的方法、学习的新知识以及对个人技能发展的反思。通过这个项目,学生不仅可以深化对JSP和Web开发的理解,还能锻炼团队协作、项目...
备忘录模块,帮助用户记录和管理个人事务;分享大厅模块,用户可以在这里分享自己的学习心得、生活趣事等;公告管理模块,发布校园内的重要通知和公告。而管理后台则为管理员提供了一个强大的管理工具,可以对用户...
在Java中,常用于控制资源的共享,如线程池或数据库连接池。 2. **工厂模式**:提供一个接口来创建对象,但让子类决定实例化哪个类。简单工厂模式是工厂模式的一种变体,适用于创建对象的类相对较少且固定的情况。 ...
6. 备忘录模式(Memento):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将对象恢复到原先保存的状态。 适用场景:当一个对象的内部状态需要被外部保存以便之后可以将...
- **课程设计总结与心得**:学生分享在开发过程中的学习和体验,总结遇到的问题和解决方案,以及对未来改进的思考。 【总结】 该实训报告详细介绍了使用JSP开发的个人信息管理系统,从需求分析到系统实现,展示了...