Practical Java Programming Language Guide
Peter Haggar
- 出版商: Addison Wesley
- 出版日期: 2000-02-11
- 售價: $1,560
- 貴賓價: 9.5 折 $1,482
- 語言: 英文
- 頁數: 320
- 裝訂: Paperback
- ISBN: 0201616467
- ISBN-13: 9780201616460
-
相關分類:
Java 程式語言
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$1,029Fundamentals of Data Structures in C++
-
$2,040$1,938 -
$549Effective C++: 50 Specific Ways to Improve Your Programs and Design, 2/e
-
$680$537 -
$650$514 -
$2,210$2,100 -
$580$458 -
$920$727 -
$560$504 -
$560$476 -
$780$741 -
$760$600 -
$590$466 -
$680$537 -
$690$538 -
$720$569 -
$750$638 -
$560$476 -
$650$553 -
$480$379 -
$750$593 -
$480$408 -
$403分佈式實時計算框架原理及實踐案例
-
$454深入理解 Redis
-
$505深入分佈式緩存 : 從原理到實踐
商品描述
Description
This broad-ranging guide can help students with varying levels of expertise to understand Java more completely and to maximize their coding effectiveness. This book's rules-based format examines 68 key topics on how to improve code, providing crisp, well-written examples and solutions. All of the examples and solutions are accompanied by thorough explanations for achieving a working solution. This practical approach to programming and design describes the best practices used by experienced programmers. To access the source code, register the book at the following Web site: http://www.awl.com/cseng/register
Java--Intermediate Programming.
Table Of Contents
Preface.Acknowledgments.
GENERAL TECHNIQUES.
Praxis 1: Understand that parameters are passed by value, not by reference.Praxis 2: Use final for constant data and constant object references.
Praxis 3: Understand that all non-static methods can be overridden by default.
Praxis 4: Choose carefully between arrays and Vectors.
Praxis 5: Prefer polymorphism to instance of.
Praxis 6: Use instance of only when you must.
Praxis 7: Set object references to null when they are no longer needed.
OBJECTS AND EQUALITY.
Praxis 8: Differentiate between reference and primitive types.Praxis 9: Differentiate between == and equals.
Praxis 10: Do not rely on the default implementation of equals.
Praxis 11: Implement the equals method judiciously.
Praxis 12: Prefer get Class in equals method implementations.
Praxis 13: Call super. equals of base classes.
Praxis 14: Consider carefully instance of in equals method implementations.
Praxis 15: Follow these rules when implementing an equals method.
EXCEPTION HANDLING.
Praxis 16: Know the mechanics of exception control flow.Praxis 17: Never ignore an exception.
Praxis 18: Never hide an exception.
Praxis 19: Consider the drawback to the throws clause.
Praxis 20: Be specific and comprehensive with the throws clause.
Praxis 21: Use finally to avoid resource leaks.
Praxis 22: Do not return from a try block.
Praxis 23: Place try/catch blocks outside of loops.
Praxis 24: Do not use exceptions for control flow.
Praxis 25: Do not use exceptions for every error condition.
Praxis 26: Throw exceptions from constructors.
Praxis 27: Return objects to a valid state before throwing an exception.
PERFORMANCE.
Praxis 28: Focus initially on design, data structures, and algorithms.Praxis 29: Do not rely on compile-time code optimization.
Praxis 30: Understand runtime code optimization.
Praxis 31: Use String Buffer, rather than String, for concatenation.
Praxis 32: Minimize the cost of object creation.
Praxis 33: Guard against unused objects.
Praxis 34: Minimize synchronization.
Praxis 35: Use stack variables whenever possible.
Praxis 36: Use static, final, and private methods to allow in lining.
Praxis 37: Initialize instance variables only once.
Praxis 38: Use primitive types for faster and smaller code.
Praxis 39: Do not use an Enumeration or an Iterator to traverse a Vector.
Praxis 40: Use System array copy for copying arrays.
Praxis 41: Prefer an array to a Vector or Array List.
Praxis 42: Reuse objects whenever possible.
Praxis 43: Use lazy evaluation.
Praxis 44: Optimize source code by hand.
Praxis 45: Compile to native code.
MULTITHREADING.
Praxis 46: Understand that for instance methods, synchronized locks objects, not methods or code.Praxis 47: Distinguish between synchronized statics and synchronized instance methods.
Praxis 48: Use private data with an accessor method instead of public or protected data.
Praxis 49: Avoid unnecessary synchronization.
Praxis 50: Use synchronized or volatile when accessing shared variables.
Praxis 51: Lock all objects involved in a single operation.
Praxis 52: Acquire multiple locks in a fixed, global order to avoid deadlock.
Praxis 53: Prefer notify All to notify.
Praxis 54: Use spin locks for wait and notify All.
Praxis 55: Use wait and notify All instead of polling loops.
Praxis 56: Do not reassign the object reference of a locked object.
Praxis 57: Do not invoke the stop or suspend methods.
Praxis 58: Terminate threads through thread cooperation. Classes and Interfaces.
Praxis 59: Use interfaces to support multiple inheritance.
Praxis 60: Avoid method clashes in interfaces.
Praxis 61: Use abstract classes when it makes sense to provide a partial implementation.
Praxis 62: Differentiate between an interface, abstract class, and concrete class.
Praxis 63: Define and implement immutable classes judiciously.
Praxis 64: Use clone for immutable objects when passing or receiving object references to mutable objects.
Praxis 65: Use inheritance or delegation to define immutable classes.
Praxis 66: Call super. clone when implementing a clone method.
Praxis 67: Do not rely on finalize methods for non-memory resource cleanup.
Praxis 68: Use care when calling non-final methods from constructors.
Appendix: Learning Java.
Further Reading.
Index.
Colophon. 0201616467T04062001