java.lang.ref


1. Weak Reference to Prevent Memory Leaks

import java.lang.ref.WeakReference;

class Example {
  private Object obj;

  public Example(Object obj) {
    this.obj = new WeakReference<>(obj).get();
  }

  // ...
}

2. Soft Reference for Caching

import java.lang.ref.SoftReference;
import java.util.HashMap;

class Cache {
  private Map<String, SoftReference<Object>> cache = new HashMap<>();

  public Object get(String key) {
    SoftReference<Object> ref = cache.get(key);
    return ref == null ? null : ref.get();
  }

  // ...
}

3. Phantom Reference for Garbage Collection

4. WeakHashMap for Memory Optimization

5. SoftHashMap for Caching in Memory

6. SoftConcurrentMap for Concurrent Caching

7. Reference Queue for Monitoring Objects

8. Finalize Method for Custom Cleanup

9. Cleaner for Explicit Resource Release

10. WeakThreadLocal for Per-Thread Data

11. SoftThreadLocal for Per-Thread Data Caching

12. InheritableThreadLocal for Inheritable Per-Thread Data

13. ThreadLocal for Per-Thread Data Storage

14. WeakReference for Memory Management

15. SoftReference for Memory Management

16. PhantomReference for Finalization

17. WeakHashMap for Memory Optimization

18. SoftHashMap for Caching

19. IdentityHashMap for Key Identity

20. ConcurrentHashMap for Concurrent Access

21. CopyOnWriteArrayList for Concurrent Iteration

22. BlockingQueue for Inter-Thread Communication

23. ArrayBlockingQueue for Bounded Buffer

24. LinkedBlockingDeque for Double-Ended Blocking Queue

25. PriorityQueue for Priority-Based Queue

26. Executors for Thread Management

27. ScheduledExecutorService for Scheduled Tasks

28. CountDownLatch for Synchronizing Threads

29. CyclicBarrier for Synchronizing Threads

30. Semaphore for Controlling Thread Access

31. Lock for Thread Synchronization

32. ReadWriteLock for Controlling Read and Write Access

33. StampedLock for Optimistic Concurrency

34. AtomicBoolean for Memory-Consistent Boolean

35. AtomicInteger for Memory-Consistent Integer

36. AtomicLong for Memory-Consistent Long

37. AtomicReference for Memory-Consistent Reference

38. AtomicMarkableReference for Memory-Consistent Reference with Mark

39. AtomicIntegerFieldUpdater for Memory-Consistent Field Updates

40. AtomicLongFieldUpdater for Memory-Consistent Field Updates

41. AtomicReferenceFieldUpdater for Memory-Consistent Field Updates

42. VarHandle for Efficient Field Access

43. Unsafe for Low-Level Memory Access

44. MemoryBarrier for Memory Synchronization

45. Volatile for Memory Visibility

46. Synchronized for Thread Safety

47. Lock-Free Data Structures for Concurrent Access

48. ThreadLocal for Per-Thread Storage

49. InheritableThreadLocal for Per-Thread Storage with Inheritance

50. Thread-Safe Collections for Concurrent Access