☕
TechLearn
Java Tutorial
Back to Home
What is Java?Features of JavaUses of JavaJava Editions (Java SE, EE, ME)JDK, JRE and JVMJava ArchitecturePlatform IndependenceBytecodeHow Java WorksFirst Java ProgramJava Compilation ProcessJava Execution FlowJava InstallationSetting JAVA_HOMEJava Environment SetupJava Naming ConventionsJava KeywordsJava Reserved WordsJava IdentifiersJava Unicode SystemJava CommentsJava Coding Standards
Variables in JavaData Types in JavaPrimitive Data TypesNon-Primitive Data TypesLiteralsType CastingWidening CastingNarrowing CastingOperatorsArithmetic OperatorsRelational OperatorsLogical OperatorsBitwise OperatorsAssignment OperatorsUnary OperatorsTernary Operatorinstanceof OperatorInput and OutputScanner ClassBufferedReaderConsole Inputprintf()Escape SequencesCommand Line Arguments
Control Statementsif Statementif-else StatementNested ifswitch Statementswitch Expressionfor Loopwhile Loopdo-while LoopEnhanced for Loopbreak Statementcontinue Statementreturn Statement
OOP ConceptsClassesObjectsObject CreationDefault ConstructorParameterized ConstructorConstructor OverloadingCopy Constructorthis Keywordstatic Keywordfinal KeywordAccess ModifiersEncapsulationSingle InheritanceMultilevel InheritanceHierarchical InheritanceMethod Overridingsuper KeywordCompile-time PolymorphismRuntime PolymorphismAbstractionAbstract ClassInterfaceMultiple Inheritance using InterfaceAssociationAggregationCompositionObject ClassAnonymous ObjectInitialization BlocksNested ClassesInner ClassesAnonymous Inner ClassesStatic Nested Classes
Array BasicsOne-Dimensional ArrayTwo-Dimensional ArrayMultidimensional ArrayJagged ArrayArray InitializationArray TraversalArray SortingArray SearchingArrays ClassCopying ArraysPassing Arrays to MethodsReturning Arraysvarargs
String ClassString PoolImmutable StringMutable StringString MethodsString Comparisonequals() vs ==StringBufferStringBuilderStringTokenizerStringJoinerText BlocksUnicode HandlingRegular ExpressionsPattern ClassMatcher Class
Exception Basicstry-catchMultiple catchfinallythrowthrowsCustom ExceptionChecked ExceptionUnchecked ExceptionError vs ExceptionStack Tracetry-with-resourcesException PropagationChained Exceptions
Package ConceptBuilt-in PackagesUser-defined PackagesimportStatic ImportPackage ProtectionJAR FilesManifest File
Stack MemoryHeap MemoryMetaspaceJVM Memory ModelGarbage CollectionGC AlgorithmsMemory Leakfinalize()Reference Types (Weak, Soft, Phantom)
Collections OverviewIterableCollection InterfaceArrayListLinkedListVectorStackQueue InterfacePriorityQueueDequeArrayDequeHashSetLinkedHashSetTreeSetSortedSetNavigableSetHashMapLinkedHashMapTreeMapHashtableConcurrentHashMapWeakHashMapIdentityHashMapEnumMapCollections ClassComparableComparatorIteratorListIteratorSpliteratorFail-Fast vs Fail-SafeImmutable CollectionsSynchronized Collections
Generic ClassGeneric MethodType ParametersBounded TypesWildcardsUpper BoundLower BoundType ErasureGeneric InterfaceRaw Types
Process vs ThreadThread BasicsCreating ThreadsThread LifecycleThread PriorityThread SchedulerSynchronizationsynchronized KeywordInter-thread Communicationwait()notify()notifyAll()DeadlockRace ConditionStarvationThread SafetyvolatileAtomic VariablesExecutors FrameworkThread PoolFutureCompletableFutureForkJoinPoolLocks APIReentrantLockReadWriteLockSemaphoreCountDownLatchCyclicBarrierPhaserParallel StreamsVirtual Threads
I/O BasicsByte StreamsCharacter StreamsFile HandlingFile ClassFileInputStreamFileOutputStreamBuffered StreamsFileReaderFileWriterBufferedReaderBufferedWriterPrintWriterDataInputStreamDataOutputStreamSerializationDeserializationtransientExternalization
NIO OverviewPathFiles ClassChannelsBuffersWatchService
Lambda ExpressionsFunctional InterfacesPredicateFunctionConsumerSupplierMethod ReferencesStream APIIntermediate OperationsTerminal OperationsOptionalDefault MethodsStatic Interface MethodsDate Time APIBase64Parallel Streams
Module System (JPMS)JShellCollection Factory MethodsPrivate Interface Methodsvar KeywordHTTP Client APIString ImprovementsSwitch ExpressionsText BlocksPattern MatchingRecordsSealed ClassesPattern Matching for switchRecord PatternsSequenced CollectionsVirtual ThreadsStructured ConcurrencyScoped Values
Functional Programming BasicsPure FunctionsHigher Order FunctionsClosuresCurryingImmutable ProgrammingStream Pipelines
LocalDateLocalTimeLocalDateTimeZonedDateTimePeriodDurationDateTimeFormatterTime ZonesLegacy Date APICalendar
JDBC ArchitectureJDBC DriversDriverManagerConnectionStatementPreparedStatementCallableStatementResultSetTransactionsBatch ProcessingConnection PoolingMetadataRowSetStored Procedures
319 topics covered
☕
TechLearn
Java Tutorial
Back to Home
What is Java?Features of JavaUses of JavaJava Editions (Java SE, EE, ME)JDK, JRE and JVMJava ArchitecturePlatform IndependenceBytecodeHow Java WorksFirst Java ProgramJava Compilation ProcessJava Execution FlowJava InstallationSetting JAVA_HOMEJava Environment SetupJava Naming ConventionsJava KeywordsJava Reserved WordsJava IdentifiersJava Unicode SystemJava CommentsJava Coding Standards
Variables in JavaData Types in JavaPrimitive Data TypesNon-Primitive Data TypesLiteralsType CastingWidening CastingNarrowing CastingOperatorsArithmetic OperatorsRelational OperatorsLogical OperatorsBitwise OperatorsAssignment OperatorsUnary OperatorsTernary Operatorinstanceof OperatorInput and OutputScanner ClassBufferedReaderConsole Inputprintf()Escape SequencesCommand Line Arguments
Control Statementsif Statementif-else StatementNested ifswitch Statementswitch Expressionfor Loopwhile Loopdo-while LoopEnhanced for Loopbreak Statementcontinue Statementreturn Statement
OOP ConceptsClassesObjectsObject CreationDefault ConstructorParameterized ConstructorConstructor OverloadingCopy Constructorthis Keywordstatic Keywordfinal KeywordAccess ModifiersEncapsulationSingle InheritanceMultilevel InheritanceHierarchical InheritanceMethod Overridingsuper KeywordCompile-time PolymorphismRuntime PolymorphismAbstractionAbstract ClassInterfaceMultiple Inheritance using InterfaceAssociationAggregationCompositionObject ClassAnonymous ObjectInitialization BlocksNested ClassesInner ClassesAnonymous Inner ClassesStatic Nested Classes
Array BasicsOne-Dimensional ArrayTwo-Dimensional ArrayMultidimensional ArrayJagged ArrayArray InitializationArray TraversalArray SortingArray SearchingArrays ClassCopying ArraysPassing Arrays to MethodsReturning Arraysvarargs
String ClassString PoolImmutable StringMutable StringString MethodsString Comparisonequals() vs ==StringBufferStringBuilderStringTokenizerStringJoinerText BlocksUnicode HandlingRegular ExpressionsPattern ClassMatcher Class
Exception Basicstry-catchMultiple catchfinallythrowthrowsCustom ExceptionChecked ExceptionUnchecked ExceptionError vs ExceptionStack Tracetry-with-resourcesException PropagationChained Exceptions
Package ConceptBuilt-in PackagesUser-defined PackagesimportStatic ImportPackage ProtectionJAR FilesManifest File
Stack MemoryHeap MemoryMetaspaceJVM Memory ModelGarbage CollectionGC AlgorithmsMemory Leakfinalize()Reference Types (Weak, Soft, Phantom)
Collections OverviewIterableCollection InterfaceArrayListLinkedListVectorStackQueue InterfacePriorityQueueDequeArrayDequeHashSetLinkedHashSetTreeSetSortedSetNavigableSetHashMapLinkedHashMapTreeMapHashtableConcurrentHashMapWeakHashMapIdentityHashMapEnumMapCollections ClassComparableComparatorIteratorListIteratorSpliteratorFail-Fast vs Fail-SafeImmutable CollectionsSynchronized Collections
Generic ClassGeneric MethodType ParametersBounded TypesWildcardsUpper BoundLower BoundType ErasureGeneric InterfaceRaw Types
Process vs ThreadThread BasicsCreating ThreadsThread LifecycleThread PriorityThread SchedulerSynchronizationsynchronized KeywordInter-thread Communicationwait()notify()notifyAll()DeadlockRace ConditionStarvationThread SafetyvolatileAtomic VariablesExecutors FrameworkThread PoolFutureCompletableFutureForkJoinPoolLocks APIReentrantLockReadWriteLockSemaphoreCountDownLatchCyclicBarrierPhaserParallel StreamsVirtual Threads
I/O BasicsByte StreamsCharacter StreamsFile HandlingFile ClassFileInputStreamFileOutputStreamBuffered StreamsFileReaderFileWriterBufferedReaderBufferedWriterPrintWriterDataInputStreamDataOutputStreamSerializationDeserializationtransientExternalization
NIO OverviewPathFiles ClassChannelsBuffersWatchService
Lambda ExpressionsFunctional InterfacesPredicateFunctionConsumerSupplierMethod ReferencesStream APIIntermediate OperationsTerminal OperationsOptionalDefault MethodsStatic Interface MethodsDate Time APIBase64Parallel Streams
Module System (JPMS)JShellCollection Factory MethodsPrivate Interface Methodsvar KeywordHTTP Client APIString ImprovementsSwitch ExpressionsText BlocksPattern MatchingRecordsSealed ClassesPattern Matching for switchRecord PatternsSequenced CollectionsVirtual ThreadsStructured ConcurrencyScoped Values
Functional Programming BasicsPure FunctionsHigher Order FunctionsClosuresCurryingImmutable ProgrammingStream Pipelines
LocalDateLocalTimeLocalDateTimeZonedDateTimePeriodDurationDateTimeFormatterTime ZonesLegacy Date APICalendar
JDBC ArchitectureJDBC DriversDriverManagerConnectionStatementPreparedStatementCallableStatementResultSetTransactionsBatch ProcessingConnection PoolingMetadataRowSetStored Procedures
319 topics covered
Home/Java/Packages and Access Control
☕ Java

Packages and Access Control

8 lessons in this section of the Java tutorial. Work through them in order, or jump to the one you need.

  1. 1.Package Concept

    A package in Java is a namespace that groups related classes, interfaces, enums, and annotations into a logical unit.

  2. 2.Built-in Packages

    Java ships with a rich standard library organised into packages under the java and javax namespaces.

  3. 3.User-defined Packages

    User-defined packages are packages you create to organise your own application's classes and interfaces.

  4. 4.import

    The import statement allows you to use a class, interface, or enum by its simple name rather than its fully qualified name.

  5. 5.Static Import

    Static import allows you to access static members — static fields and static methods — of a class by their simple name without qualifying them with the class name.

  6. 6.Package Protection

    Package protection refers to the package-private access level — the default access when no modifier (public, protected, or private) is written.

  7. 7.JAR Files

    A JAR (Java ARchive) file is a compressed archive in ZIP format that packages compiled Java class files, resources (images, configuration files, properties), and…

  8. 8.Manifest File

    The manifest file (META-INF/MANIFEST.MF) is a text file inside every JAR that contains metadata about the JAR and its contents.

← Exception HandlingJava Memory Management →
TechLearn

Free Java and Spring Boot tutorials for developers, written by Ajeet Kumar.

Tutorials

  • Java Tutorial
  • Spring Boot Tutorial

About & Legal

  • About
  • Contact
  • Privacy Policy
  • Terms & Conditions
  • Disclaimer

© 2026 TechLearn. All rights reserved.