Angelika Langer - Training & Consulting
HOME | COURSES | TALKS | ARTICLES | GENERICS | LAMBDAS | IOSTREAMS | ABOUT | CONTACT | Twitter | Lanyrd | Linkedin
 
HOME 

  OVERVIEW

  BY TOPIC
    JAVA
    C++

  BY COLUMN
    EFFECTIVE JAVA
    EFFECTIVE STDLIB

  BY MAGAZINE
    JAVA MAGAZIN
    JAVA SPEKTRUM
    JAVA WORLD
    JAVA SOLUTIONS
    JAVA PRO
    C++ REPORT
    CUJ
    OTHER
 

GENERICS 
LAMBDAS 
IOSTREAMS 
ABOUT 
CONTACT 
Effective Java - A column by Angelika Langer & Klaus Kreft

Effective Java - A column by Angelika Langer & Klaus Kreft

Klaus Kreft
(Independent Consultant)
Angelika Langer
(Independent Instructor)
 
Both can be contacted via www.AngelikaLanger.com .
EFFECTIVE JAVA

January 2002 - September 2017
Since January 2002 we wrote a column about best practice  Java programming.  It appeared in JavaSpektrum until March 2008 and was published in JavaMagazin until September 2017. This column is available in German only. Pre-copyedit versions of the articles are made available below.  Parts of the series are available as e-books, one part even as a hardcopy, all published by entwickler.press
 
 

RELATED ARTICLES

RELATED ARTICLES

RELATED ARTICLES
Here are some comments by our  readers  (in German): 
"... wenn man sehen will, wie man so eine Reihe wirklich fundiert, fachlich richtig und gut geschrieben aufzieht, der werfe mal einen Blick in ... eine Reihe namens "Effective Java" von Angelika Langer und Klaus Kreft ..."  (quoted from Entwickler-Forum

"... Mir ist keine andere vergleichbare Serie bekannt, die sich über einen so langen Zeitraum auf einem konstant hohen Niveau mit Grundlagen von Java beschäftigt und die notwendigen Zusammenhänge veranschaulicht...." (quoted from Software Engineering Blog )


RELATED ARTICLES

RELATED ARTICLES
TOPIC OVERVIEW
 

 
2002-2008
Fundamentals - Object Comparison in Java - Principles of Implementing equals() January 2002
Fundamentals - Comparing Apples and Pears - Type Check in equals() March 2002
Fundamentals - Hash Code in Java - Consistency between equals() and hashCode() May 2002
Fundamentals - Comparators in Java - Principles of Implementing compareTo() July 2002
Fundamentals - Copies and Clones - Purpose of clone() September 2002
Fundamentals - Copies and Clones - Principles of Implementing clone() November 2002
Fundamentals - CloneNotSupported - clone() and Its Exception January 2003
Fundamentals - Implementing Immutable Types March 2003
Fundamentals - Immutability Adapters for Collections and the Meaning of final July 2003
Fundamentals - final Classes and final Methods September 2003
Fundamentals - Polymorphic Method Calls in Constructors November 2003
Concurrency - Multithreading Basics January 2004
Concurrency - Synchonization in Detail March 2004
Concurrency - Explicit Locks (a new feature in JDK 5.0) May 2004
Concurrency - wait() and notify() in Detail July 2004
Concurrency - The Nested Monitor Problem September 2004
Concurrency - Stopping and Suspending Threads November 2004
Concurrency - Thread-Safe Collections and Synchronizers January 2005
Concurrency - Asynchronous Tasks (Callable and Future) March 2005
Concurrency - Thread Pools May 2005
Performance - Micro-Benchmarking July 2005
Performance - Micro-Benchmarking & JIT Compilation September 2005
Performance - Profiler Tools November 2005
Performance - Functional Performance Hot Spots January 2006
Performance - Memory Hot Spots March 2006
Performance - Garbage Collection Algorithms May 2006 & July 2006
Performance - Tuning the Garbage Collector September 2006
Enums - The Language Feature of Enumeration Types November 2006
Enums - A Common Pitfall January 2007
Generics - Introduction to Generics and Parameterized Types March 2007
Generics - Wildcards May 2007
Generics - Raw Types and Type Erasure July 2007
Generics - Type Erasure - The Dark Side September 2007
Generics - Generic Creation November 2007
Generics - Implementing a Generic Pair Class (Part 1) January 2008
Generics - Implementing a Generic Pair Class (Part 2) March 2008
 
2008-2017
JMM - Introduction to Memory Model Issues in Java July 2008
The series on the "Java Memory Model" is available in PDF (985 KB) format.
 
JMM - Overview of the Java Memory Model August 2008
JMM - The Cost of Lock-Based Synchronisation September 2008
JMM - Volatile Variables October 2008
JMM - Double-Check Locking November 2008
JMM - Idioms for Use of Volatile December 2008
JMM - Initialization Safety February 2009
JMM - Immutable Types April 2009
JMM - The Danger of Aggressive Optimizations June 2009
JMM - Atomic Scalar Variables August 2009
JMM - Atomic Reference Variables October 2009
JMM - CopyOnWriteArrayList December 2009
GC - Generational Garbage Collection February 2010
GC - Young Generation Garbage Collection April 2010
GC - Old Generation Garbage Collection - Mark-and-Compact June 2010
GC - Old Generation Garbage Collection - Concurrent-Mark-and-Sweep August 2010
GC - Garbage Collection Tuning Goals October 2010
GC - Garbage Collection Tuning Strategies December 2010
GC - "Garbage First" (G1) Garbage Collector - Overview February 2011
GC - "Garbage First" (G1) Garbage Collector - Tuning April 2011
Java7 - New Features in Java 7 - Overview June 2011
Java 7:
Project Coin, Generics und NIO2 
[Kindle]
 
Java7 - String-Switch, Multi-Catch, Try-With-Resources, Numeric Literals August 2011
Java7 - Diamond Operator & Varargs October 2011
Java7 - NIO2 - File System API & Asynchronous I/O December 2011
Java7 - Fork-Join-Framework - Purpose & Internals February 2012
Java 7:
Fork-Join-Framework und Phaser 
[Kindle]
 
Java7 - Fork-Join-Framework - Usage April 2012
Java7 - The Phaser Synchronizer June 2012
Memory - Memory Leaks - An Example August 2012
Memory Leaks in Java
[Kindle]
 
Memory - Accumulating Memory Leaks October 2012
Memory - Nulling-Out References December 2012
Memory - Dynamic Memory Leak Analysis February 2013
Memory Leaks in Java
[Kindle]
 
Memory - Post-Mortem Memory Leak Analysis April 2013
Memory - Weak References June 2013
Java 8 - Functional Programming in Java September 2013
Java 8 - Lambda Expressions & Method References November 2013
Java 8 - Default Methods January 2014
Java 8 - Overview of New Features in Java 8 March 2014
Java 8 - Streams: Overview of The Extended Collection API May 2014
Java 8 - Stream Creation & Stream Operations July 2014
Java 8 - Stream Collectors September 2014
Java 8 - Side Effects of Stream Operations' Functional Parameters November 2014
Java 8 - The Date/Time API January 2015
Java 8 - CompletableFuture March 2015
Java 8 - Optional - The Better Null? May 2015
Java 8 - Parallel Streams July 2015
Java 8 - The Performance Model of Streams September 2015
Java 8 - reduce() vs. collect() November 2015
Java 8 - User-Defined Collectors January 2016
Java 8 - Parallel Streams and Blocking Functionality March 2016
Java 8 - API-Design with Lambdas May 2016
Java 8 - Programming Techniques with Lambdas July 2016
Java 8 - User-Defined Stream Sources September 2016
PerfTools - Micro-Benchmarks November 2016
PerfTools - JMH January 2017
Java 9 - Overview of New Features in Java 9 September 2017
  © Copyright 1995-2021 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/EffectiveJava.html  last update: 4 Nov 2021