`
jff
  • 浏览: 94548 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

一点JAVA心得总结,备忘

阅读更多

以下内容转载自: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设计模式

    这篇心得体会主要围绕“Java设计模式”展开,通过链接到的博客文章(https://huangfeihome.iteye.com/blog/1197887),我们可以深入探讨这些模式以及它们在实际编程中的应用。 首先,设计模式是一种经过时间考验的...

    java几种常用的设计模式源码和心得

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和复用性。本资源包含了2016年6月20日关于Java常用设计模式的源码和作者的心得体会,这对于我们深入...

    java面试题目与技巧1

    │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....

    java面试题及技巧4

    │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....

    java面试题以及技巧

    │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....

    SSH辅助教学系统jsp开发语言mysql数据库myeclipse设计java编程

    3.管理员用户:登录功能、退出功能、课程管理、作业管理、资料下载管理、选课管理、留言管理、备忘录管理、心得管理、班级管理、学院管理、系管理、教师管理、学生管理,拥有系统 最高权限。 三、注意事项 1、管理...

    java面试题及技巧3

    │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....

    java面试题以及技巧6

    │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java.htm │ │ │ SCJP 1_4 认证的初级教程.htm │ │ │ 新建 文本文档....

    java源代码(记事本)

    3. **MyMemo**:这个名字可能是“我的备忘录”,可能包含了作者个人的编程心得、技巧或者是解决特定问题的代码片段。它可能涵盖了各种Java编程的实用知识,从基础到高级,比如设计模式、性能优化、数据库连接或者...

    java程序员常用的开发设置.zip

    文件"所以不能倒下(1).docx"和"身后空无一人(1).txt"的名字看起来像是激励或者哲学性质的内容,可能包含了一些开发者的心得体会或者团队文化,虽然不是直接的编程知识,但它们对保持开发者的精神状态和团队凝聚力...

    备忘1

    在实际的博客中,作者可能分享了关于源代码管理、使用特定开发工具的心得体会,或者介绍了如何解决某个技术难题。由于没有具体描述,我们只能猜测内容可能涵盖了编码实践、版本控制、调试技巧或者新工具的介绍。 ...

    基于java-ee的个人数字图书馆的设计与实现毕业论文设计.doc

    3. **备忘录**:提供一个记录待办事项和计划的平台,帮助用户管理时间。 4. **信息**:允许用户之间发送消息,促进思想交流。 5. **日志**:用户可以在系统中发布日志,分享心得或记录生活。 6. **资料搜索**:用户...

    jquery.roundabout

    Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery:prototype...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    grid用jquery实现的表格美化

    Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    15 day learn jQuery教程

    Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jsp个人信息管理系统实训报告分享.pdf

    【课程设计总结与心得】部分,学生通常会回顾整个开发过程,讨论遇到的挑战、解决问题的方法、学习的新知识以及对个人技能发展的反思。通过这个项目,学生不仅可以深化对JSP和Web开发的理解,还能锻炼团队协作、项目...

    校园生活服务平台 JAVA+Vue.js+SpringBoot+MySQL

    备忘录模块,帮助用户记录和管理个人事务;分享大厅模块,用户可以在这里分享自己的学习心得、生活趣事等;公告管理模块,发布校园内的重要通知和公告。而管理后台则为管理员提供了一个强大的管理工具,可以对用户...

    GoF23种经典模式+简单工厂模式讲解还有一篇心得

    在Java中,常用于控制资源的共享,如线程池或数据库连接池。 2. **工厂模式**:提供一个接口来创建对象,但让子类决定实例化哪个类。简单工厂模式是工厂模式的一种变体,适用于创建对象的类相对较少且固定的情况。 ...

    Java23种设计模式

    6. 备忘录模式(Memento):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将对象恢复到原先保存的状态。 适用场景:当一个对象的内部状态需要被外部保存以便之后可以将...

    jsp个人信息管理系统实训报告.pdf

    - **课程设计总结与心得**:学生分享在开发过程中的学习和体验,总结遇到的问题和解决方案,以及对未来改进的思考。 【总结】 该实训报告详细介绍了使用JSP开发的个人信息管理系统,从需求分析到系统实现,展示了...

Global site tag (gtag.js) - Google Analytics