Java Import, Static Import with Examples


In this post, we will learn about import, static import statements in java. Import Statement: 1) What is import statement? 2) How to use...

In this post, we will learn about import, static import statements in java.

Import Statement:

1) What is import statement?
2) How to use import statement?
3) What is the importance of import?
4) What is the drawback of import statement?
5) What is static import statement?
6) How to use static import statement?
7) What is the importance of static import?

Note: By default, "java.lang" package is available to all classes in Java.

More details on Package in Java.

Java Import, Static Import with Examples

What is important of import statement?

I have taken the following program to discuss about it. Please look into the program carefully which has String class used several times.
String class is an builtin java api which is present in java.lang.package. StringExample class has three string variables, all have been preceded by it's package name "java.lang".
This is making us to type lot of code which is unnecessary, code non readable and consumes lot of time if we have lengthy program.

package java.w3schools.utils;

public class StringExample {
    public static void main(String[] args) {
        // Taken three string variables named name, topic, email.
        java.lang.String name = "java" + "-" + "w3schools"; 
        java.lang.String topic = "java";
        java.lang.String email = "java@w3schools.com";

If we have repeated class usage then better to use import statements which makes the code clear and easily readable. In these scenarios, we can use import statements.
Import is a keyword in java and which is to indicate to include the package for a class or interface, enum.
The code could be as following instead of preceding package name.

import example:

package java.w3schools.utils;

import java.lang.String;

public class StringUtil {
    public static void main(String[] args) {
        // Taken three string variables named name, topic, email.
        String name = "java" + "-" + "w3schools";
        String topic = "java";
        String email = "java@w3schools.com";


Import declaration is checked at compile time and not checked at runtime. If during runitme package class is not present then we will get the NoClassDefFoundError.

Once JVM finds String class, it maps to the import statement which is similar to the #include in C-Language studies in Graduation.

Example with multiple import statements:

The below program has 4 import statements for different classes but all are from java.util package.
package java.w3schools.utils;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ImportExample {
    public static void main(String[] args) {
        // Multiple import statements.
        String name = "java" + "-" + "w3schools";
        List fruits = new ArrayList();
        Set ids = new HashSet();   

All packages to be imported can be different from different packages as below.

import java.util.ArrayList;
import java.lang.Comparable;
import java.nio.charset;

If we have many classes that are required in the same class then Oracle java people have given the opportunity to utilize the all classes with wild character "*". Wild character makes available all classes from the given package in the current class.

Wild character "*" is used to import multiple classes from one package.

Wildcard import statement example:

import java.util.*;
public class WildcardImportExample {
    public static void main(String[] args) {
        // Wildcard import example for multiple classes.
        String name = "java" + "-" + "w3schools";
        List fruits = new ArrayList();
        Set ids = new HashSet();   

This example uses List, ArrayList, Set, Hashset.
When compiler finds List interface, it looks into the package java.util for List interface. If it does not find, we will get compile time error as stated below.

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    List cannot be resolved to a type
Unless you want to use multiple classes from same package, Otherwise do not use wild card import statement.

Examples for Multiple imports:

import java.util.*;
import java.lang.*;
import java.lang.reflect.*;;
import java.util.concurrent.*;
import java.awt.*;
import java.util.concurrent.locks.*;

As you know, every java package has a lot of classes in java api.

Note: import java.* is not allowed to cover all class in java api and will get compile time error.

Benefits or Rules:

1) Imports helps in saving time.
2) makes codes readable.
3) Import statement right after package statement.
4) Import statement is not required if the class to be imported in the same package.
5) Imports allow us to use the classes in other package. 

Static import:

In most of time many classes are having Static members in it. Static members are extensively used in java api.

In java 5, static import feature allow programmer to use directly any static members of the class and no need to invoke with it's class name.


import static package.class name.static member name.

Should be "import static", not "static import".

Advantages of static import:

Greater keystroke-reduction capabilities and less coding (save typing).

Disadvantages of Static import:

Many people argue this makes code less readable.
If two class have the same for its static members then we will get ambiguity.

Example Before Static import:

package java.w3schools.utils;
public class BeforeStaticImport {
    public static void main(String[] args) {

Observe, here MIN_VALUE, MAX_VALUE are static members in Integer class,
out is a static member in System class. Integer and System classes are from "java.lang" package.

We can use static import for better understanding.

Static import example:

package w3schools.utils;
import static java.lang.Integer.*;
import static java.lang.System.out;

public class StaticImportExample {
    public static void main(String[] args) {

Used a wildcard character on Integer class and specified static member name on System class. If we want to use only one static member it it good specify the its name.



About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,16,Arrays,7,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,5,Collections,22,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,81,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,4,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,9,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,29,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,Java 8,66,Java 8 Difference,2,Java 8 Stream Conversions,2,java 8 Stream Examples,3,Java 9,1,Java Conversions,11,Java Design Patterns,1,Java Files,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Conversions,3,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Logging,1,Mac OS,2,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,21,String,58,String Programs,9,String Revese,1,Swing,1,System,1,Tags,1,Threads,10,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: Java Import, Static Import with Examples
Java Import, Static Import with Examples
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content