- Static block vs Instance block - InstanceBlockAndStaticBlock.java
- Shallow copy vs Deep copy - ShallowAndDeepCloning.java
- Strong reference/WeakReference/SoftReference/PhantomReference - MemoryReferenceTypesInJava.java
- hashCode() and equal() role in Hash-based collection - HashSetExampleWithEqualsAndHashcode.java
- ArrayList vs CopyOnWriteArrayList - CopyOnWriteArrayListDemo.java
- CopyOnWriteArraySet vs CopyOnWriteArrayList - CopyOnWriteArraySetDemo.java
- WeakHashMap vs HashMap - HashMapVsWeakHashMap.java
- IdentityHashMap vs HashMap - IdentityHashMapVsHashMap.java
- Callable (returning value from thread) - ExecutorServiceAndCallableExample.java
- Locking level (Class level and Object level) - ClassLevelLockVsObjectLevelLock.java
- Locks -
- ReentrantLock - ReentrantLockDemo.java
- ReentrantReadWriteLock - ReentrantReadWriteLockDemo.java
- Race condition -
- Check-the-act - RaceConditionCheckThenAct.java
- Read-modify-write - RaceConditionReadModifyWrite.java
- Producer-Consumer Pattern problem -
- Using Lock and Conditions - ProducerConsumerWithLockAndCondition.java
- Using wait() and notify() - ProducerConsumerWithWaitAndNotify.java
- Using LinkedBlockingQueue - ProducerConsumerUsingBlockingQueue.java
- Java Concurrency - BlockingQueue
java.util.concurrency.BlockingQueue Interface has following implementations-- ArrayBlockingQueue
- LinkedBlockingQueue - ProducerConsumerUsingBlockingQueue.java
- PriorityBlockingQueue - PriorityBlockingQueueDemo.java
- DelayQueue- DelayQueueDemo.java
- SynchronousQueue (direct handoff) - SynchronousQueueDemo.java
- Java Concurrency – Synchronizers
The java.util.concurrent package contains several classes that help set of threads to collaborate with each other. Some of those classes are -- CountDownLatch - CountDownLatchDemo.java
- CyclicBarrier - CyclicBarrierDemo.java, CyclicBarrierDemo2.java
- Semaphore And Mutex - SemaphoreDemo.java, MutexDemo.java
- SynchronousQueue (direct handoff) - SynchronousQueueDemo.java
- Phaser
- Exchanger (bidirection data handoff) - ExchangerDemo.java
- java.lang.ThreadLocal - ThreadLocalDemo.java
- Sort map by values problem - SortMapByValues.java
- Find max or min from collection of object - Java8FindingMaxMin.java
- Find max/min/second max/max salary by deptName of employee Problem - EmployeeSalaryProblem.java
- Creational
- Factory Pattern - FactoryPattern.java, FactoryPatternExp2.java
- Abstract Factory Pattern - AbstractFactoryPattern.java
- Builder Pattern - BuilderPattern.java
- Prototype Pattern - PrototypePattern.java
- Singleton Pattern - SingletonPattern.java
- Structural
- Adaptor pattern - AdaptorPattern.java
- Brigde Pattern - BridgePattern.java
- Decorator Pattern - DecoratorPattern.java
- Maximum absolute difference in array - MaxAbsoluteDifferenceInArray.java
- Reverse single linked list - ReverseSingleLinkedList.java
- Print Odd and Even using two threads (Synchronization problem) - PrintOddEvenUsingTwoThreads.java
- Anagram Problem - FindAnagrams.java