`
regbin
  • 浏览: 56105 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

effective java coding

阅读更多
注:以下来源于个人日常的整理
创建对象:
1.不要提前创建对象;避免在循环体中创建对象,循环前应该创建对象,避免浪费更多内存空间和增加GC负担
2.数据格式化首选操作符格式化,即‘+’号,次选其他方法MessageFormat
3.尽量用对象的valueOf转换对象
4.集合创建如果知道大小,就赋予大小

类和接口:
1.组合优于继承(指extends)
   继承(extends)中,构造方法中决不能调用可被覆盖的方法(@override);clone和readObject也不可以调用可覆盖方法
2.接口优于抽象类
3.尽量不要用接口定义常量,常量可用工具类或枚类型

异常:(少用异常)
受检异常:exception 调用者希望有适当的恢复机制,就用受检异常
未受检异常:RuntimeException or ERROR 不必声明

失败原子性:失败的方法调用应该使对象保持在调用之前的状态
实现方法:1.设计不可变对象 2.执行操作前检查参数有效性或调整计算的处理过程(先处理不发生状态变化的逻辑)
3.提供恢复代码4.在对象的临时拷贝上执行操作

性能相关:
1.尽量产生少的对象
    a.如果一个对象能重复使用,可以不用每次都new
2.尽量产生少的函数调用
    a.inline
    b.在new 一个带多个属性的对象时候,尽量采用构造初始化函数,少用set形式
3.循环处理
    a.不用try{}catch{}
    b.优先使用for
    c.原则1
4.区别处理基本类型类和包装类型类
    基本类型数据产生和处理在栈中,包装类型是对象,会在堆中产生实例,JVM对包装类处理首先会调用valeOf得到实际值,再做其他操作
    a.适用包装类型的场合:集合类对象,有对象方面需求时候
    b.其他提倡使用基本类型
5.避免产生JVM无法马上回收的无用的引用的对象
    比如数组或其他集合中某些个对象无用了,要手工释放对象:obj =null;
6.字符串处理
    拼接:StringBuildder、StringBuffer
7.数组拷贝
    System.arrayCopy 是native调用
8.多线程
    a.尽量避免使用多线程
    b.synchronized func(){} 比 func(){synchronized(this){}} 上高效,前提后一种锁的代码片段比较少
9.系统间调用
    a.远程调用尽量减少远程调用的次数,比方使用粗粒度传输对象
    b.同一系统(进程)间调用内使用本地接口,不要用远程
    c.webService适用公开对外发布接口,针对不同平台系统,同一平台间调用尽量不要用。
     比方都是java平台,可以用hessian协议
10.类变量不要再给默认的初始值
   比如:int a=0; 这样会导致多赋值一次

分享到:
评论

相关推荐

    Java Coding Standard.pdf

    - [Effective Java](https://docs.oracle.com/javase/tutorial/java/effective/index.html) - [Java Code Conventions](https://www.oracle.com/technical-resources/articles/javase/codeconventions.html) #### ...

    阿巴巴里Java开发手册-effective coding

    《阿里巴巴Java开发手册》是阿里巴巴集团内部制定的一套Java编程规范,旨在提升代码质量和团队协作效率。手册的更新至2017.11.30的版本,内容与上市的实体书相差无几,因此这里我们将依据这个版本探讨一些核心的Java...

    java_standards_v1.0neaf_2.rar_java programming

    This document delves into some fundamental Java programming techniques and provides a rich collection of coding practices to be followed by JAVA/J2EE based application development teams. The best ...

    JAVA开发手册

    除了上述书籍外,唯品会还借鉴了《SEICERT Oracle Coding Standard for Java》以及Sonar提供的零散规则。这些额外的标准和规则有助于填补现有规范中的空白,并确保唯品会的手册能够覆盖更广泛的编程实践。 ##### ...

    C++: Effective Modern C++ (C++ 11, C++ 14)

    C++: Effective Modern C++ (C++ 11, C++ 14) (guide,C Programming, HTML, Javascript, Programming,all,internet, Coding, CSS, Java, PHP Vol 1) By 作者: Paul Laurence ISBN-10 书号: 1547133244 ISBN-13 书号:...

    JAVA复习材料

    在复习过程中,通过阅读《Effective Java》、《Java并发编程实战》等经典书籍,结合实际项目中的源码分析,可以更深入地理解和掌握Java技术。同时,不断实践和解决问题,才能真正将理论知识转化为实际技能。对于给出...

    Effective Objective-C(原版)

    2. **协议(Protocols)**:Objective-C的协议机制类似于Java和C#的接口,允许定义一组方法签名而不必强制实现。书中会探讨如何利用协议进行多继承模拟,以及在设计模式中使用协议的重要性。 3. **类别(Categories...

    Test-Driven Java Development - Second Edition.pdf

    An easy-to-follow, hands-on guide to building applications through effective coding practices. This book covers practical examples by introducing different problems, each one designed as a learning ...

    《唯品会Java开发手册》2版

    - **书籍**:《Clean Code》、《Effective Java 2nd》、《SEICERT Oracle Coding Standard for Java》等。 - **工具**:SonarQube静态代码分析工具。 #### 5. 定制记录 - **与阿里手册的比较**:详细记录了唯品会...

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    Standards and styles for coding Java programs. New-to-JavaTM Programming Center. New to the Java Platform. Java™ Platform Standard Ed. 6 All Classes Packages java.applet java.awt java.awt.color...

    Software Development, Design and Coding-2nd Edition-Apress(2017).pdf

    I hope that by the end of the book you’ll have a much better idea of what the design of good programs is like, what makes an effective and productive developer, and how to develop larger pieces of ...

    Kotlin.Standard.Library.Cookbook.epub

    Given the verbosity of Java, developers have turned to Kotlin for effective software development. The Kotlin standard library provides vital tools that make day-to-day Kotlin programming easier. This ...

    CodingBooks:在您开始成为编码专家的道路时,总是很高兴找到良好的信息来源。 许多计算机语言在一开始学习起来可能很棘手,因此您需要可靠的参考资料来仔细检查错误并学习如何不再犯错误。

    而《Effective Java》则是进阶读物,提供了许多关于如何编写高效、可维护Java代码的实用建议。 C++,作为C语言的增强版,支持更高级别的抽象。《C++ Primer》是一本全面的教程,覆盖了C++的基础到高级特性,包括...

    XDoclet in Action

    - **Testing Best Practices**: Tips on effective unit testing strategies using mock objects. #### Chapter 11: XDoclet and Portlets Finally, this chapter discusses the use of XDoclet in generating code...

    TestComplete Cookbook(PACKT,2013)

    Your tests will work fine with any application regardless of whether it was created in C#, C++, Delphi, Java, or any other development language. TestComplete is the most efficient tool of its kind, ...

    C++书籍指南

    - **《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》**:Herb Sutter和Andrei Alexandrescu合著,本书提供了一套全面的编码规范和最佳实践指南,有助于开发者编写出高质量、易于维护的C++代码...

    基于SSM+mysql的企业人事管理系统源码数据库论文.doc

    MyEclipse, an integrated development environment (IDE), simplifies the development process by providing tools for coding, debugging, and testing. Tomcat, a widely-used Apache web server, hosts the ...

    基于jsp的数信学院电子邮件服务系统源码数据库论文.doc

    Through analysis and research, we utilize JSP (JavaServer Pages) technology for development and design, employing MySQL as the database for storage and management. The development environment is ...

Global site tag (gtag.js) - Google Analytics