Pages

Packages

Packages
Definition

A package in Java is used to group (or) collection of sub packages, classes, interfaces, enum, annotations and it as a folder in a file directory. We use packages to avoid name conflicts, and to write a better maintainable code. We can easily understand using package.

Types of Packages
  1. Built In Packages : JDK and JRE provide different packages like java, lang, awt.
  2. User Defined Packages : Programmer can create the own package as per requirement.
Built In Package
Package Description
java.applet:Provides the classes necessary to create an applet and the classes an applet uses to communicate with its applet context.
java.awt:Contains all of the classes for creating user interfaces and for painting graphics and images.
java.beans:Contains classes related to developing beans -- components based on the JavaBeans™ architecture.
java.io:Provides for system input and output through data streams, serialization and the file system.
java.lang:Provides classes that are fundamental to the design of the Java programming language.
java.math:Provides classes for performing arbitrary-precision integer arithmetic (BigInteger) and arbitrary-precision decimal arithmetic (BigDecimal).
java.net:Provides the classes for implementing networking applications.
java.nio:Defines buffers, which are containers for data, and provides an overview of the other NIO packages.
java.rmi:Provides the RMI package.
java.security:Provides the classes and interfaces for the security framework.
java.sql:Provides the API for accessing and processing data stored in a data source (usually a relational database) using the JavaTM programming language.
java.text:Provides classes and interfaces for handling text, dates, numbers, and messages in a manner independent of natural languages.
java.util:Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
javax.crypto:Provides the classes and interfaces for cryptographic operations.
javax.net:Provides classes for networking applications.
javax.print:Provides the principal classes and interfaces for the JavaTM Print Service API.
javax.rmi:Contains user APIs for RMI-IIOP.
javax.management:Provides the core classes for the Java Management Extensions.
javax.script:The scripting API consists of interfaces and classes that define Java TM Scripting Engines and provides a framework for their use in Java applications.
javax.sql:Provides the API for server side data source access and processing from the JavaTM programming language.
javax.swing:Provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms.
javax.tools:Provides interfaces for tools which can be invoked from a program, for example, compilers.
javax.transaction:Contains three exceptions thrown by the ORB machinery during unmarshalling.

User Defined Package

Programmer (or) Developer can create difference type of Packages. We need to understand that Java uses a File System Directory (FSD) to store them that looks like folders on our computers. These are the packages that are defined by the user. First we create a directory like com.jst then create the JstDemo Class inside the directory with the first statement being the package names.

Example of User Defined Packages :
package com.jaladhi.jst;
public class JstUserDefined {
      public static void main(String args [ ] ) {
            System.out.println("Jaladhi Soft Technology (JST)");
      }
}
Output : Jaladhi Soft Technology (JST)
Example of Uder Defined Packages :
package com.jst.jaladhi;
public class UserDefinedPackage {
      public static void main(String args[]) {
            System.out.println("Jaladhi Soft Technology (JST)");
      }
}
Output : Jaladhi Soft Technology (JST)


java.util.function Package in Java 8
Interface Description
BiConsumer Represents an operation that accepts two input arguments and returns no result.
BiFunction Represents a function that accepts two arguments and produces a result.
BinaryOperator Represents an operation upon two operands of the same type, producing a result of the same type as the operands.
BiPredicate Represents a predicate (boolean-valued function) of two arguments.
BooleanSupplier Represents a supplier of boolean-valued results.
Consumer Represents an operation that accepts a single input argument and returns no result.
DoubleBinaryOperator Represents an operation upon two double-valued operands and producing a double-valued result.
DoubleConsumer Represents an operation that accepts a single double-valued argument and returns no result.
DoubleFunction Represents a function that accepts a double-valued argument and produces a result.
DoublePredicate Represents a predicate (boolean-valued function) of one double-valued argument.
DoubleSupplier Represents a supplier of double-valued results.
DoubleToIntFunction Represents a function that accepts a double-valued argument and produces an int-valued result.
DoubleToLongFunction Represents a function that accepts a double-valued argument and produces a long-valued result.
DoubleUnaryOperator Represents an operation on a single double-valued operand that produces a double-valued result.
Function Represents a function that accepts one argument and produces a result.
IntBinaryOperator Represents an operation upon two int-valued operands and producing an int-valued result.
IntConsumer Represents an operation that accepts a single int-valued argument and returns no result.
IntFunction Represents a function that accepts an int-valued argument and produces a result.
IntPredicate Represents a predicate (boolean-valued function) of one int-valued argument.
IntSupplier Represents a supplier of int-valued results.
IntToDoubleFunction Represents a function that accepts an int-valued argument and produces a double-valued result.
IntToLongFunction Represents a function that accepts an int-valued argument and produces a long-valued result.
IntUnaryOperator Represents an operation on a single int-valued operand that produces an int-valued result.
LongBinaryOperator Represents an operation upon two long-valued operands and producing a long-valued result.
LongConsumer Represents an operation that accepts a single long-valued argument and returns no result.
LongFunction Represents a function that accepts a long-valued argument and produces a result.
LongPredicate Represents a predicate (boolean-valued function) of one long-valued argument.
LongSupplier Represents a supplier of long-valued results.
LongToDoubleFunction Represents a function that accepts a long-valued argument and produces a double-valued result.
LongToIntFunction Represents a function that accepts a long-valued argument and produces an int-valued result.
LongUnaryOperator Represents an operation on a single long-valued operand that produces a long-valued result.
ObjDoubleConsumer Represents an operation that accepts an object-valued and a double-valued argument, and returns no result.
ObjIntConsumer Represents an operation that accepts an object-valued and a int-valued argument, and returns no result.
ObjLongConsumer Represents an operation that accepts an object-valued and a long-valued argument, and returns no result.
Predicate Represents a predicate (boolean-valued function) of one argument.
Supplier Represents a supplier of results.
ToDoubleBiFunction Represents a function that accepts two arguments and produces a double-valued result.
ToDoubleFunction Represents a function that produces a double-valued result.
ToIntBiFunction Represents a function that accepts two arguments and produces an int-valued result.
ToIntFunction Represents a function that produces an int-valued result.
ToLongBiFunction Represents a function that accepts two arguments and produces a long-valued result.
ToLongFunction Represents a function that produces a long-valued result.
UnaryOperator Represents an operation on a single operand that produces a result of the same type as its operand.


java.util.stream Package in Java 8
Interface Summary
Interface Description
BaseStream Base interface for streams, which are sequences of elements supporting sequential and parallel aggregate operations.
Collector A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming the accumulated result into a final representation after all input elements have been processed.
DoubleStream A sequence of primitive double-valued elements supporting sequential and parallel aggregate operations.
DoubleStream.Builder A mutable builder for a DoubleStream.
IntStream A sequence of primitive int-valued elements supporting sequential and parallel aggregate operations.
IntStream.Builder A mutable builder for an IntStream.
LongStream A sequence of primitive long-valued elements supporting sequential and parallel aggregate operations.
LongStream.Builder A mutable builder for a LongStream.
Stream A sequence of elements supporting sequential and parallel aggregate operations.
Stream.Builder A mutable builder for a Stream.
Class Summary
Class Description
Collectors Implementations of Collector that implement various useful reduction operations, such as accumulating elements into collections, summarizing elements according to various criteria, etc.
StreamSupport Low-level utility methods for creating and manipulating streams.
Enum Summary
Enum Description
Collector.Characteristics Characteristics indicating properties of a Collector, which can be used to optimize reduction implementations.

Package Class

The Package Class is available in java.lang package. The Package Class provides methods to get information about the specification and implementation of a package.

Example of Package Class :
package com.jaladhi.jst;
public class PackageInformation {
      public static void main(String args[]) {
            Package p=Package.getPackage("java.lang");
            System.out.println("Package Name : " + p.getName());
            System.out.println("Specification Title : " + p.getSpecificationTitle());
            System.out.println("Specification Vendor : " + p.getSpecificationVendor());
            System.out.println("Specification Version : " + p.getSpecificationVersion());
            System.out.println("Implementaion Title : " + p.getImplementationTitle());
            System.out.println("Implementation Vendor : " + p.getImplementationVendor());
            System.out.println("Implementation Version : " + p.getImplementationVersion());
            System.out.println("Is Sealed : " + p.isSealed());
      }
}
Output :
Package Name : java.lang
Specification Title: Java Platform API Specification
Specification Vendor: Oracle Corporation
Specification Version: 1.8
Implementaion Title: Java Runtime Environment
Implementation Vendor: OpenLogic-OpenJDK
Implementation Version: 1.8.0-272
Is Sealed : false
Example of Package Class :
package com.jaladhi.jst;
public class PackageInformation {
      public static void main(String args[]) {
            Package p = Package.getPackage("java.util");
            System.out.println("Package Name : " + p.getName());
            System.out.println("Specification Title : " + p.getSpecificationTitle());
            System.out.println("Specification Vendor : " + p.getSpecificationVendor());
            System.out.println("Specification Version : " + p.getSpecificationVersion());
            System.out.println("Implementaion Title : " + p.getImplementationTitle());
            System.out.println("Implementation Vendor : " + p.getImplementationVendor());
            System.out.println("Implementation Version : " + p.getImplementationVersion());
            System.out.println("Is Sealed : " + p.isSealed());
      }
}
Output :
Package Name : java.util
Specification Title: Java Platform API Specification
Specification Vendor: Oracle Corporation
Specification Version: 1.8
Implementaion Title: Java Runtime Environment
Implementation Vendor: OpenLogic-OpenJDK
Implementation Version: 1.8.0-272
Is Sealed : false