What is a variable?

When we want to store any information, we store it in an address of the computer. Instead of remembering the complex address where we have stored our information, we name that address.The naming of an address is known as variable. Variable is the name of memory location.

Java Programming language defines mainly three kind of variables.

  1. Instance variables
  2. Static Variables
  3. Local Variables

1) Instance variables

Instance variables are variables that are declare inside a class but outside any method,constructor or block. Instance variable are also variable of object commonly known as field or property. They are referred as object variable. Each object has its own copy of each variable and thus, it doesn't effect the instance variable if one object changes the value of the variable.

class Student
 String name;
 int age;
Here name and age are instance variable of Student class.

2) Static variables

Static are class variables declared with static keyword. Static variables are initialized only once. Static variables are also used in declaring constant along with final keyword.

class Student
 String name;
 int age;
 static int instituteCode=1101; 

Here instituteCode is a static variable. Each object of Student class will share instituteCode property.

Additional points on static variable:

  • static variable are also known as class variable.
  • static means to remain constant.
  • In Java, it means that it will be constant for all the instances created for that class.
  • static variable need not be called from object.
  • It is called by classname.static variable name

Note: A static variable can never be defined inside a method i.e it can never be a local variable.


Suppose you make 2 objects of class Student and you change the value of static variable from one object. Now when you print it from other object, it will display the changed value. This is because it was declared static i.e it is constant for every object created.

package studytonight;

class Student{
    int a;
    static int id = 35;
    void change(){

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

        Student o1 = new Student();
        Student o2 = new Student();
       = 1;


3) Local variables

Local variables are declared in method, constructor or block. Local variables are initialized when method, constructor or block start and will be destroyed once its end. Local variable reside in stack. Access modifiers are not used for local variable.

float getDiscount(int price)
 float discount;
 return discount; 
Here discount is a local variable.