• Java
    • JAXB Tutorial
      • What is JAXB
      • JAXB Marshalling Example
      • JAXB UnMarshalling Example
  • Spring Tutorial
    • Spring Core Tutorial
    • Spring MVC Tutorial
      • Quick Start
        • Flow Diagram
        • Hello World Example
        • Form Handling Example
      • Handler Mapping
        • BeanNameUrlHandlerMapping
        • ControllerClassNameHandlerMapping
        • SimpleUrlHandlerMapping
      • Validation & Exception Handling
        • Validation+Annotations
        • Validation+ResourceBundle
        • @ExceptionHandler
        • @ControllerAdvice
        • Custom Exception Handling
      • Form Tag Library
        • Textbox Example
        • TextArea Example
        • Password Example
        • Dropdown Box Example
        • Checkboxes Example
        • Radiobuttons Example
        • HiddenValue Example
      • Misc
        • Change Config file name
    • Spring Boot Tutorial
  • Hibernate Tutorial
  • REST Tutorial
    • JAX-RS REST @PathParam Example
    • JAX-RS REST @QueryParam Example
    • JAX-RS REST @DefaultValue Example
    • JAX-RS REST @Context Example
    • JAX-RS REST @MatrixParam Example
    • JAX-RS REST @FormParam Example
    • JAX-RS REST @Produces Example
    • JAX-RS REST @Consumes Example
    • JAX-RS REST @Produces both XML and JSON Example
    • JAX-RS REST @Consumes both XML and JSON Example
  • Miscellaneous
    • JSON Parser
      • Read a JSON file
      • Write JSON object to File
      • Read / Write JSON using GSON
      • Java Object to JSON using JAXB
    • CSV Parser
      • Read / Write CSV file
      • Read/Parse/Write CSV File – OpenCSV
      • Export data into a CSV File
      • CsvToBean and BeanToCsv – OpenCSV

JavaInterviewPoint

Java Development Tutorials

Java Autoboxing and Unboxing Examples

May 1, 2015 by javainterviewpoint Leave a Comment

Autoboxing and Unboxing are the features included in Java 1.5, where the auto conversion happens from Primitive data type to its corresponding Wrapper Class and Vice-Versa. Autoboxing features allows you to use the primitive data type and object types interchangeably in Java in many places. The most familiar case is that when we use Collections like ArrayList or TreeSet etc.. we all know that it can take only Object data types and not primitive types, then we need to convert primitive to object type and add it to the collection. With the introduction of autoboxing and unboxing the conversion happens automatically by the Java compiler

Autoboxing: Conversion of the primitive data types to their corresponding wrapper classes is known as autoboxing. For example: conversion of long to Long, int to Integer, double to Double etc.

Unboxing: It is just the reverse process of autoboxing. Automatically converting an object of a wrapper class to its corresponding primitive type is known as unboxing. For example : conversion of Integer to int, Float to float, Double to double etc.

Autoboxing in Java

1. Adding values to the collection framework

We all know that collection can take only Object type and not primitive type, even when you add primitives to the collection, the compiler will not throw any error it will do the conversion(Autoboxing) for you. Lets take the below example.

        ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
        arrayList1.add(1);
        arrayList1.add(2);
        arrayList1.add(3);

In the above code, the ArrayList can take only Integer type elements whereas we are adding only primitives.

2. Parameter to a Method

When a method is expecting a parameter of Wrapper class type but the parameter passed is of primitive type.

public class Test1 
{
    public static void main(String args[])
    {
       disp(10);
    }
    public static void disp(Integer val)
    {
        System.out.println(val);
    }
}

Even though the disp() method expects a wrapper class(Integer) parameter, but we are passing the int(primitive type) . The program runs fine as the compiler does the Autoboxing here.

3. Assigning Primitives to Wrapper

When you are assigning a primitive type value to wrapper class of its type. For example: The below statements are completely valid

        Float f = 3.0f;
        Integer i = 3;

Unboxing in Java

1. Retrieving value from the Collection Framework

The get() Method of the collection will return Wrapper class still you can assign it to primitives.

ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
int val = arrayList1.get(0);

Here the arrayList1 returns Integer type object, which compiler unboxes and sets to int val

2. Parameter to a Method

When a method is expecting a parameter of primitive type but the parameter passed is of Wrapper class type.

public class Test1 
{
    public static void main(String args[])
    {
       disp(new Integer(10));
    }
    public static void disp(int val)
    {
        System.out.println(val);
    }
}

Even though the disp() method expects a primitive(int) parameter, but we are passing wrapper class type(Integer) . The program runs fine as the compiler does the Unboxing here.

3. Assigning Wrapper to Primitives

When you are assigning a wrapper type to primitives. For example: The below statements are completely valid

       Integer wrapper = new Integer(10);
       int i = wrapper;

How compiler does Autoboxing and Unboxing?

We have learnt that the compiler converts the primitives to Wrapper type and vice-versa. Lets now discuss what exactly compiler does during autoboxing and unboxing.

Autoboxing

What we are able to see

Interger val = 10;

What compiler does for us

Integer val = Integer.valueOf(10);

Unboxing

What we are able to see

Integer wrapper = new Integer(10);
int val = wrapper;

What compiler does for us

Integer wrapper = new Integer(10);
int val = wrapper.intValue();

 

Other interesting articles which you may like …

  • JVM Architecture – Understanding JVM Internals
  • Object and Object Class in Java
  • Difference between JDK, JRE and JVM
  • Components of Java Development Kit (JDK)
  • What is a Class in Java with Example
  • How to open .class file in Java
  • How to Set Classpath for Java in Windows
  • Difference Between ClassNotFoundException Vs NoClassDefFoundError In Java
  • How HashMap works in Java
  • How to make a class Immutable in Java
  • Polymorphism in Java – Method Overloading and Overriding
  • Types of polymorphism in java
  • Types of Inheritance in Java
  • Why Java does not supports Multiple Inheritance – Diamond Problem?
  • Java Method Overloading Example
  • Java Constructor Overloading Example

Filed Under: Core Java, Java Tagged With: Autoboxing, Autoboxing in Java, Java, Java Autoboxing, Unboxing, Unboxing in Java

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Java Basics

  • JVM Architecture
  • Object in Java
  • Class in Java
  • How to Set Classpath for Java in Windows
  • Components of JDK
  • Decompiling a class file
  • Use of Class.forName in java
  • Use Class.forName in SQL JDBC

Oops Concepts

  • Inheritance in Java
  • Types of Inheritance in Java
  • Single Inheritance in Java
  • Multiple Inheritance in Java
  • Multilevel Inheritance in Java
  • Hierarchical Inheritance in Java
  • Hybrid Inheritance in Java
  • Polymorphism in Java – Method Overloading and Overriding
  • Types of Polymorphism in java
  • Method Overriding in Java
  • Can we Overload static methods in Java
  • Can we Override static methods in Java
  • Java Constructor Overloading
  • Java Method Overloading Example
  • Encapsulation in Java with Example
  • Constructor in Java
  • Constructor in an Interface?
  • Parameterized Constructor in Java
  • Constructor Chaining with example
  • What is the use of a Private Constructors in Java
  • Interface in Java
  • What is Marker Interface
  • Abstract Class in Java

Java Keywords

  • Java this keyword
  • Java super keyword
  • Final Keyword in Java
  • static Keyword in Java
  • Static Import
  • Transient Keyword

Miscellaneous

  • newInstance() method
  • How does Hashmap works internally in Java
  • Java Ternary operator
  • How System.out.println() really work?
  • Autoboxing and Unboxing Examples
  • Serialization and Deserialization in Java with Example
  • Generate SerialVersionUID in Java
  • How to make a class Immutable in Java
  • Differences betwen HashMap and Hashtable
  • Difference between Enumeration and Iterator ?
  • Difference between fail-fast and fail-safe Iterator
  • Difference Between Interface and Abstract Class in Java
  • Difference between equals() and ==
  • Sort Objects in a ArrayList using Java Comparable Interface
  • Sort Objects in a ArrayList using Java Comparator

Follow

  • Coding Utils

Useful Links

  • Spring 4.1.x Documentation
  • Spring 3.2.x Documentation
  • Spring 2.5.x Documentation
  • Java 6 API
  • Java 7 API
  • Java 8 API
  • Java EE 5 Tutorial
  • Java EE 6 Tutorial
  • Java EE 7 Tutorial
  • Maven Repository
  • Hibernate ORM

About JavaInterviewPoint

javainterviewpoint.com is a tech blog dedicated to all Java/J2EE developers and Web Developers. We publish useful tutorials on Java, J2EE and all latest frameworks.

All examples and tutorials posted here are very well tested in our development environment.

Connect with us on Facebook | Privacy Policy | Sitemap

Copyright ©2023 · Java Interview Point - All Rights Are Reserved ·