`

Agile Java

阅读更多

1. 代码就是设计

 

2. 查看Path
    Windows: path
    Unix: echo $PATH

 

3. 查看具体变量
    Windows: echo %JAVA_HOME%
    Unix: echo $JAVA_HOME

 

4. 断言: 第一个参数等于第二个参数

 

5. 保证系统中没有重复的代码

 

6. 不要把成员变量直接暴露给其他对象

 

7. 用类常量替换字符串或者数字

 

8. 消除所有的警告

 

9. 时刻保持代码干净

 

10. 用更有表现力的代码替代注释

 

11. 一个类是单职责

 

12. 用编译器来重构代码

 

13. 以较小的步伐,增量构件系统的测试和代码。如果发现问题,放弃导致问题的增量代码,以更小的步伐重新开始

 

14. 工具方法一般设置为static

    Collections.sort(list): 该list必须实现Comparable接口

 

15. 使用接口提供抽象层,有助于消除重复

    设计系统,通过扩展来拥抱变化,不要通过修改来适应变化

List<Grade> grades = new ArrayList<Grade>(); 定义为List接口,容易扩展

 

    面向对象的集合类优于数组

Arrays.equals(a, b) 比较两个数组的内容,而不是内存位置

     

    返回分隔符解析之后的List

private List<String> split(String fullName) {
    return new ArrayList<String>(Arrays.asList(fullName.split(" ")));
}
或者
private List<String> split(String fullName) {
    List<String> results = new ArrayList<String>();
    for (String name : fullName.split(" "))
        results.add(name);
    return results;
}

 

16. 避免传递异常,但也不要创建空catch块

    不要在finally块中调用return语句,这样可能会吃掉catch抛出的异常

 

17. Object中的equals比较引用 - 比较接收者和参数对象的内存位置
    如果子类没有提供equals实现,那么使用缺省的比较内存位置的equals实现

// 改写equals和hashCode
public boolean equals(Object object) {
    if (object == null)
        return false;
    if (this.getClass() != object.getClass())
        return false;
    Course that = (Course) object;
    return this.department.equals(that.department) && this.number.equals(that.number);
}

// 哈希值运算通常用质数
public int hashCode() {
    final int hashMultiplier = 41;
    int result = 7;
    result = result * hashMultiplier + department.hashCode();
    result = result * hashMultiplier + number.hashCode();
    return result;
}

 

18. I/O
    Reader/Writer: 字符流,处理文本类型
    Input/Output: 字节流,处理图像或者字节码
    InputStreamReader: 将读入的字节装换成字符
    OutputStreamWriter: 将字符转换为单字节

 

19. 序列化

Class Session implements java.io.Serializable {
    private transient List<Student> students = new ArrayList<Student>(); //瞬时对象
}

 

    如果序列化之后再改动Class,再次存入文件,将会出现异常,建议:
    19.1 将序列化的使用最小化
    19.2 尽可能使用transient的成员变量
    19.3 使用serialVersionUID

 

20. 内部类

    静态内部类(static nested): 不能调用外部类的实例变量
    内部类(inner): 可以访问外部类的实例变量
    匿名内部类: 没有构造函数,但可以用实例初始化段来替代

 

21. 打开断言: java -ea MainClass

 

22. Jar工具

    创建Jar: jar cvf sis.jar *
    c-create  v-verbose  f-filename

    解压Jar: jar xvf sis.jar

    加入MANIFEST.MF: jar cvmf main.mf sis.jar *

分享到:
评论

相关推荐

    《Agile Java》中文版

    《Agile Java》是一本专为初学者设计的Java编程教程,中文版的推出使得国内的编程爱好者能够更方便地学习这一全球广泛使用的编程语言。这本书深入浅出地讲解了Java语言的基础知识,旨在帮助读者快速掌握编程技能,并...

    Agile Java 中文版

    《Agile Java 中文版》是一本专门为Java初学者和希望深入敏捷开发实践者准备的优秀书籍。本书全面覆盖了Java编程语言的基础知识,并结合敏捷开发的理念,为读者提供了实战性的学习路径。以下是对该书内容的详细解读...

    Agile Java Crafting Code with Test-Driven Development

    Agile Java Crafting Code with Test-Driven Development英文版,包含pdf和chm格式,pdf格式的目录缩进和超连接有问题,所以附上了改造过的chm文件,以便有心人可以修改目录。

    Agile Java Example Code

    【标题】"Agile Java Example Code" 涵盖了敏捷开发方法在Java编程中的实践应用,这是一系列示例代码,旨在展示如何在实际项目中采用敏捷原则和技巧。敏捷开发是一种以人为本、迭代和增量的软件开发方法论,强调快速...

    agile java 课程源码

    agile java 每一章 课程 的 源码;

    agile Java课后习题代码

    【描述】"agile Java课后习题代码"暗示了这是一个教学情境,可能是学生在学习完敏捷开发与Java编程相关课程后,完成的练习项目或代码示例。这些代码可能包含了对敏捷开发原则的实践,例如短迭代周期、持续集成、用户...

    Agile Java 高清中文版.rar

    《Agile Java 高清中文版》是一本深入讲解敏捷开发和Java编程实践的重要书籍,旨在帮助读者掌握如何在敏捷环境中高效地运用Java技术。这本书的高清中文版为中文读者提供了方便,使得学习过程更为直观易懂。 1. **...

    Agile Java 高清中文版-2.7M

    《Agile Java 高清中文版》是一本深入讲解敏捷开发和Java编程的书籍,旨在帮助读者理解并掌握敏捷开发理念以及如何在Java项目中应用这些原则。这本书以高清中文的形式呈现,使得学习过程更为直观易懂,尤其适合中文...

    agile java(CHM)

    《Agile Java》是一本专为Java开发者设计的书籍,主要关注的是敏捷开发方法和测试驱动开发(TDD)在Java编程中的应用。这本书的核心理念是通过TDD来提高代码质量,推动敏捷开发流程,帮助开发者编写更加灵活、可维护且...

    ( 2 agile java.pdf

    本书《Agile Java: Crafting Code with Test-Driven Development》不仅深入浅出地介绍了Java语言的基础知识,还特别强调了敏捷开发理念与测试驱动开发的实际应用。通过阅读本书,读者不仅可以掌握Java编程的核心技能...

    Agile Java 习题3,4--类方法和类变量

    本话题将深入探讨Agile Java中的类方法和类变量,这些是面向对象编程的基础概念,对于理解和编写高质量的Java代码至关重要。 类方法和类变量是Java类的核心组成部分。在Java中,类是创建对象的蓝图,它定义了对象的...

    Agile Java Development with Spring, Hibernate and Eclipse-code

    书中的代码示例涵盖了Java开发的重要方面,结合了Agile开发理念、Spring框架、Hibernate持久化库以及Eclipse集成开发环境的实用技巧。 Agile开发是一种以人为核心、迭代、逐步交付的软件开发方法论,强调快速响应...

    Agile Java 高清中文版

    Agile Java 高清中文版 这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。这本书成书,以JDK5.0的语法为基础讲解,要学习JDK...

    agileJava 程序代码

    首先,我们要理解"AGILE"(敏捷)在软件开发中的含义。敏捷开发是一种以人为本、迭代、增量的开发方法,强调快速响应变化,通过持续交付有价值的软件来满足客户需求。它倡导灵活的规划、迭代的工作节奏以及团队间的...

    agile java 课本及课后代码

    《敏捷Java》是一本专注于Java编程和敏捷开发实践的书籍,其核心理念是结合敏捷开发方法与Java技术,提升软件开发效率和质量。书中的课后代码提供了丰富的实例,帮助读者深入理解和应用所学知识。以下是对这本书及其...

    AgileJava教程课本代码

    《AgileJava教程课本代码》是一份非常宝贵的资源,它包含了《AgileJava》一书中的所有源代码。这本书在Java编程领域具有很高的知名度,是许多开发者学习和提升敏捷开发技能的重要参考。AgileJava教程强调了敏捷开发...

Global site tag (gtag.js) - Google Analytics