Sometimes it is required at runtime to get the class name of an object.Before we need to do any introspection on an object , we need to find  its 
If we want to get only class name without package name prefixed with ,we can use getSimpleName() method on the Class object.
Let's see a working example
java.lang.Class object.All types in java like all object types,all primitive types,all array types etc have an associated  java.lang.Class object.
Please note that I am using  Upper Case C for java.lang.Class and Lower Case c for class in general.
If we know the name of a class at compile time we can find the Class(java.lang.Class) object of that class by using below syntax
 Class myclassObj = MyClass.class java.lang.Class) object of the given object below syntax is used.
 Class myclassObj = myobj.getClass() String className=myClass.getName();If we want to get only class name without package name prefixed with ,we can use getSimpleName() method on the Class object.
Let's see a working example
package com.brainatjava.test;
import java.util.HashMap;
import java.util.Map;
public class ClassTest {
    public static void main(String[] args) throws InterruptedException {
        String s ="good";
        System.out.println("class name is: " + s.getClass().getSimpleName());
        Map<String, String> m = new HashMap<>();
        System.out.println("class name is: " + m.getClass().getName());        
        Boolean b = new Boolean(true);
        System.out.println("class name is: " + b.getClass().getName());
        StringBuilder sb = new StringBuilder();
        Class c = sb.getClass();
        System.out.println("class name is: " + c.getName());
        int[] a=new int[3];
        System.out.println("class name is: " + a.getClass().getName());
        Integer[] in=new Integer[3];
        System.out.println("class name is: " + in.getClass().getName());
        double[] du=new double[3];
        System.out.println("class name is: " + du.getClass().getName());
        Double[] d=new Double[3];
        System.out.println("class name is: " + d.getClass().getName());
       
    }
    }And we get the below output
class name is: String
class name is: java.util.HashMap
class name is: java.lang.Boolean
class name is: java.lang.StringBuilder
class name is: [I
class name is: [Ljava.lang.Integer;
class name is: [D
class name is: [Ljava.lang.Double;What is [I , [D,[Ljava.lang.Integer,[Ljava.lang.Double
As we saw in the above paragraph we can get the
java.lang.Class object by calling getClass() method on the object.If this class object represents a reference type that is not an array type then the binary name of the class is returned, as specified by The Java™ Language Specification.
If this class object represents a primitive type or void, then the name returned is a String equal to the Java language keyword corresponding to the primitive type or void.
If this class object represents a class of arrays, then the internal form of the name consists of the name of the element type preceded by one or more '[' characters representing the depth of the array nesting. The encoding of element type names is as follows:
Element Type Encoding
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S









