注:以下来源于个人日常的整理
创建对象:
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; 这样会导致多赋值一次
分享到:
相关推荐
- [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开发手册》是阿里巴巴集团内部制定的一套Java编程规范,旨在提升代码质量和团队协作效率。手册的更新至2017.11.30的版本,内容与上市的实体书相差无几,因此这里我们将依据这个版本探讨一些核心的Java...
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 ...
除了上述书籍外,唯品会还借鉴了《SEICERT Oracle Coding Standard for Java》以及Sonar提供的零散规则。这些额外的标准和规则有助于填补现有规范中的空白,并确保唯品会的手册能够覆盖更广泛的编程实践。 ##### ...
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 书号:...
在复习过程中,通过阅读《Effective Java》、《Java并发编程实战》等经典书籍,结合实际项目中的源码分析,可以更深入地理解和掌握Java技术。同时,不断实践和解决问题,才能真正将理论知识转化为实际技能。对于给出...
2. **协议(Protocols)**:Objective-C的协议机制类似于Java和C#的接口,允许定义一组方法签名而不必强制实现。书中会探讨如何利用协议进行多继承模拟,以及在设计模式中使用协议的重要性。 3. **类别(Categories...
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 ...
- **书籍**:《Clean Code》、《Effective Java 2nd》、《SEICERT Oracle Coding Standard for Java》等。 - **工具**:SonarQube静态代码分析工具。 #### 5. 定制记录 - **与阿里手册的比较**:详细记录了唯品会...
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...
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 ...
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 ...
而《Effective Java》则是进阶读物,提供了许多关于如何编写高效、可维护Java代码的实用建议。 C++,作为C语言的增强版,支持更高级别的抽象。《C++ Primer》是一本全面的教程,覆盖了C++的基础到高级特性,包括...
- **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...
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++ Coding Standards: 101 Rules, Guidelines, and Best Practices》**:Herb Sutter和Andrei Alexandrescu合著,本书提供了一套全面的编码规范和最佳实践指南,有助于开发者编写出高质量、易于维护的C++代码...
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 ...
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 ...