“One advantage of static factory methods is that, unlike constructors, they have names.”
“Learning the art of programming, like most other disciplines, consists of first learning the rules and then learning when to break them.”
“Collection or an appropriate subtype is generally the best return type for a public, sequence- returning method.”
“Writing concurrent programs in Java keeps getting easier, but writing concurrent programs that are correct and fast is as difficult as it ever was.”
“A second advantage of static factory methods is that, unlike constructors, they are not required to create a new object each time they're invoked.”
“If you export a nontrivial interface, you should strongly consider providing a skeletal implementation to go with it. To the extent possible, you should provide the skeletal implementation via default methods on the interface so that all implementors of the interface can make use of it.”
“Implementing a constant interface causes this implementation detail to leak into the class’s exported API. It is of no consequence to the users of a class that the class implements a constant interface. In fact, it may even confuse them. Worse, it represents a commitment: if in a future release the class is modified so that it no longer needs to use the constants, it still must implement the interface to ensure binary compatibility. If a nonfinal class implements a constant interface, all of its subclasses will have their namespaces polluted by the constants in the interface.”
“You can put any element into a collection with a raw type, easily corrupting the collection’s type invariant (as demonstrated by the unsafeAdd method on page 119); you can’t put any ele- ment (other than null) into a Collection<?>.”
“arrays are covariant. This scary-sounding word means simply that if Sub is a subtype of Super, then the array type Sub[] is a subtype of the array type Super[]. Generics, by contrast, are invariant: for any two distinct types Type1 and Type2, List is neither a subtype nor a supertype of List. You might think this means that generics are deficient, but arguably it is arrays that are deficient.”
“A forEach operation that does anything more than present the result of the computation performed by a stream is a “bad smell in code,” as is a lambda that mutates state.”
“streams do not make iteration obsolete”
“premature optimization is the root of all evil. —Donald E. Knuth [”
“In other words, it is about 50 times slower to create and destroy objects with finalizers.”
“In fact, two-thirds of the uses of the close method in the Java libraries were wrong in 2007.”
“There is no way to extend an instantiable class and add a value component while preserving the equals contract, unless you’re willing to forgo the benefits of object-oriented abstraction.”
“Given all the problems associated with Cloneable, new interfaces should not extend it, and new extendable classes should not implement it.”
“It is too early to say whether modules will achieve widespread use outside of the JDK itself. In the meantime, it seems best to avoid them unless you have a compelling need.”
“Builder pattern is more verbose than the telescoping constructor pattern, so it should be used only if there are enough parameters, say, four or more.”
“Seth approached the dog and let it sniff his hand. A warm tongue caressed his palm, and Seth rubbed the top of the animal’s head. “You’re a good boy,” Seth said in his special voice reserved for babies and animals. “You’re not going to eat me, right?”
“Then he remembered Ralph's words--"no point in fighting your war over and over until you get it right.”
“Calvin: The more you know, the harder it is to take decisive action.
Once you are informed, you start seeing complexities and shades of gray.
You realize nothing is as clear as it first appears. Ultimately, knowledge is paralyzing.
Being a man of action, I cannot afford to take that risk.
Hobbes: You're ignorant, but at least you act on it.”
“Hmm… I’m having this strange sense of déjà vu, except you were telling me to stay out of your training business, and I told you how weird—” “That’s funny.” Aiden’s full lips twisted into a smirk. “I’m having the same feeling, except I said you should—” “Oh, for the love of baby daimons everywhere, I’m ready to start practice.” I pushed up from the chair.”
“Julian: What's black inside, white outside, and hot?
Jenny: What?
Julian: A wolf in sheep's clothing.
Jenny: Is that what you are?
Julian: Me? No, I'm a wolf in wolf's clothing.”
BookQuoters is a community of passionate readers who enjoy sharing the most meaningful, memorable and interesting quotes from great books. As the world communicates more and more via texts, memes and sound bytes, short but profound quotes from books have become more relevant and important. For some of us a quote becomes a mantra, a goal or a philosophy by which we live. For all of us, quotes are a great way to remember a book and to carry with us the author’s best ideas.
We thoughtfully gather quotes from our favorite books, both classic and current, and choose the ones that are most thought-provoking. Each quote represents a book that is interesting, well written and has potential to enhance the reader’s life. We also accept submissions from our visitors and will select the quotes we feel are most appealing to the BookQuoters community.
Founded in 2023, BookQuoters has quickly become a large and vibrant community of people who share an affinity for books. Books are seen by some as a throwback to a previous world; conversely, gleaning the main ideas of a book via a quote or a quick summary is typical of the Information Age but is a habit disdained by some diehard readers. We feel that we have the best of both worlds at BookQuoters; we read books cover-to-cover but offer you some of the highlights. We hope you’ll join us.