Knowledge Graph

Language FundamentalsObjects, Classes & OOP DesignGenericsCollections FrameworkFunctional Programming & StreamsExceptions, Assertions & LoggingI/O, Serialization & NetworkingConcurrencyJVM Internals & MemoryPerformance & OptimizationPlatform & Advanced APIsModern Java EvolutionProgram AnatomyPrimitive TypesOperatorsStrings & TextControl FlowArraysNumbers & MathClasses & ObjectsObject CreationStatic MembersInheritanceObject ContractsInterfacesNested ClassesRecordsEnumsImmutability & DesignComposition vs InheritanceWhy GenericsGeneric Types & MethodsType BoundsType ErasureWildcards & PECSRestrictionsGenerics PracticesCollections OverviewListsSetsQueues & DequesMapsHashing InternalsSorted CollectionsViews & AlgorithmsChoosing CollectionsLambdasMethod ReferencesFunctional InterfacesStream PipelineStream OperationsCollectorsPrimitive StreamsParallel StreamsOptionalException HierarchyCatching & CleanupException PracticesAssertionsLoggingI/O StreamsReaders & WritersFiles & Paths (NIO)Buffers & ChannelsSerializationRegular ExpressionsSocketsHTTP ClientThreads & LifecycleThread SafetySharing ObjectsLocks & SynchronizationJava Memory ModelConcurrent CollectionsExecutors & PoolsSynchronizersCompletableFutureAtomics & CASVirtual ThreadsLiveness HazardsConcurrency PracticesJVM ArchitectureClass LoadingBytecode ExecutionMemory LayoutGC FundamentalsGC AlgorithmsJIT CompilationHardware & MemoryMethodologyMicrobenchmarkingGC TuningProfilingLanguage-Level PerfConcurrent PerfObservabilityCloud-Native JavaScalability PatternsDate & Time APIAnnotationsReflectionModules (JPMS)JDBCInternationalizationSecurity BasicsNative InteropRelease Cadencevar & InferencePattern MatchingText BlocksSealed TypesStructured ConcurrencyFFM APIFuture Directions