DEV Community

Neelakandan R
Neelakandan R

Posted on • Edited on

Non-primitive data type

Java programming language has two types of data types

Primitive data types (predefined data types)
Non-primitive data types
Enter fullscreen mode Exit fullscreen mode

In this section, we will understand the non-primitive data types, their uses and implementation in Java.

Non-primitive data types:

Data types define the type of data that is stored in the variable. The type specifies the kind of data (different sizes and values).

Unlike primitive data types, these are not predefined. These are user-defined data types created by programmers. These data types are used to store multiple values.

For example, consider an array(TBD) that stores a group of values. Class is also a primitive type that stores different methods and variables. Therefore, these are also called as advanced data types in Java.

Whenever a non-primitive data type is defined, it refers a memory location where the data is stored in heap memory i.e., it refers to the memory location where an object is placed. Therefore, a non-primitive data type variable is also called referenced data type or simply object reference variable.

An object reference variable lives on the stack memory and the object to which it points always lives on the heap memory. The stack holds a pointer to the object on the heap.

In Java programming, all non-primitive data types are simply called objects that are created by instantiating a class.

Key points:

The default value of any reference variable is null.
`
Whenever we are passing a non-primitive data type to a method, we are passing the address of that object where the data is stored.

Types of Non-primitive data types

There are five types of non-primitive data types in Java. They are as follows:

1.Class
2.Object
3.String(TBD)
4.Array(TBD)
4.Interface(TBD)
Enter fullscreen mode Exit fullscreen mode

**

  1. Class and objects:**

A class in Java is a user defined data type i.e. it is created by the user. It acts a template to the data which consists of member variables and methods.

An object is the variable of the class, which can access the elements of class i.e. methods and variables.

Example:

In the following example, we are creating a class containing the variables and methods ( add() and sub() ). Here, we are accessing the methods using the object of the Class obj.

`
ClassExample.java

public class ClassExample {  

        // defining the variables of class  
        int a = 20;  
        int b = 10;  
        int c;  

        // defining the methods of class  
        public void add () {  
            int c = a + b;  
            System.out.println("Addition of numbers is: " + c);  
        }  

        public void sub () {  
            int c = a - b;  
            System.out.println("Subtraction of numbers is: " + c);  
        }  

    // main method  
    public static void main (String[] args) {  
        // creating the object of class  
        ClassExample obj = new ClassExample();  

        // calling the methods  
        obj.add();  
        obj.sub();  
    }  
}  
Enter fullscreen mode Exit fullscreen mode

`
Difference between Primitive and Non-primitive Data types in Java:

`
*In Java, the primitive data types are system defined however we have to create and define the non-primitive data types.

*In primitive data type, variables can store only one value at a time. However in non-primitive data types, either multiple values of the same type or different type or both can be stored.

*All the data for primitive type variables are stored on the stack whereas, for reference types, the stack holds a pointer to the object on the heap.

*A primitive type starts with a lowercase letter, while non-primitive types start with an uppercase letter.

*The size of a primitive type depends on the data type, while non-primitive types have all the same size.

Reference:https://www.javatpoint.com/non-primitive-data-types-in-java
**
Statement that explains reality with true or false:**

1.Datatype is type which talks about data. True

2.Datatype is a Container. True

3.Reference Variables holds actual content. True

4.Datatype is useless without Reference Variable - True
int 5; float 10.2f;

5.Reference Variable is meaningless without Datatype. true
No = 10, no2 = 20;

6.Datatype and Reference Variable are Pair. true
int no = 10;
no = 20;

8.Class is a Container. True

9.Fields and Methods are Members of a class. True

10.Object is Physical Representation of a class. True

11.Datatype is a Container. true
Class is a Container.
Therefore,
A = B, B = C, Therefore, A = C
Datatype = Container
Class = Container
Therefore, Class = Datatype.
Every Class (Predefined / User Defined) is a Datatype.

12.Reference Variable is meaningless without Datatype. true

13.Object is meaningless without Class. true
Datatype = Class
Reference Variables = Objects

14.All Classes are Non-primitive datatypes. true

15.All Non-Primitive Datatypes are Classes. true

Top comments (0)