A static variable is a variable that belongs to the class, not to any specific object. It is shared by all instances of the class.
Click to reveal answer
beginner
How many copies of a static variable exist in a Java program?
Only one copy of a static variable exists, regardless of how many objects of the class are created.
Click to reveal answer
beginner
How do you declare a static variable in Java?
Use the keyword static before the variable type, for example: static int count;
Click to reveal answer
beginner
Can static variables be accessed without creating an object?
Yes, static variables can be accessed using the class name directly, like <code>ClassName.variableName</code>.
Click to reveal answer
beginner
What happens to a static variable when you change it through one object?
Changing a static variable through one object changes it for all objects because there is only one shared copy.
Click to reveal answer
What keyword is used to declare a static variable in Java?
Avolatile
Bfinal
Cstatic
Dconst
✗ Incorrect
The keyword static declares a variable that belongs to the class.
How many copies of a static variable exist across all instances of a class?
AOne
BOne per object
CNone
DDepends on the number of threads
✗ Incorrect
Static variables have only one copy shared by all objects.
How do you access a static variable without creating an object?
AUsing the class name
BUsing the object reference
CUsing the super keyword
DYou cannot access it without an object
✗ Incorrect
Static variables can be accessed directly by the class name.
If you change a static variable through one object, what happens to other objects?
AThey get an error
BThey keep their own copy
CThey reset the value
DThey see the updated value
✗ Incorrect
All objects share the same static variable, so changes are visible to all.
Which of these is NOT true about static variables?
AThey are shared by all instances
BEach object has its own copy
CThey belong to the class
DThey can be accessed without creating an object
✗ Incorrect
Static variables have only one copy shared by all objects, not one per object.
Explain what a static variable is and how it differs from instance variables in Java.
Think about who owns the variable: the class or the object?
You got /4 concepts.
Describe how you would use a static variable to count how many objects of a class have been created.
Counting objects means sharing a number that all objects can see and update.
You got /4 concepts.
Practice
(1/5)
1. What is a key characteristic of a static variable in Java?
easy
A. It belongs to the class and is shared by all instances.
B. It is unique to each object created from the class.
C. It can only be accessed inside instance methods.
D. It is automatically deleted when an object is destroyed.
Solution
Step 1: Understand static variable ownership
A static variable belongs to the class itself, not to any individual object.
Step 2: Recognize sharing behavior
Because it belongs to the class, all objects share the same static variable value.
Final Answer:
It belongs to the class and is shared by all instances. -> Option A
Quick Check:
Static variable = shared by all objects [OK]
Hint: Static means shared by class, not per object [OK]
Common Mistakes:
Thinking static variables are unique per object
Confusing static with instance variables
Assuming static variables are deleted with objects
2. Which of the following is the correct way to declare a static variable in Java?
easy
A. static int count;
B. int static count;
C. int count static;
D. count static int;
Solution
Step 1: Recall Java syntax for static variables
The keyword static comes before the type when declaring a static variable.
Step 2: Check each option
Only static int count; follows the correct syntax.
Final Answer:
static int count; -> Option A
Quick Check:
static keyword before type = correct syntax [OK]
Hint: Put 'static' before the type when declaring [OK]
Common Mistakes:
Placing static after the variable name
Mixing order of keywords
Using invalid syntax order
3. What will be the output of the following Java code?
class Test {
static int count = 0;
Test() {
count++;
}
public static void main(String[] args) {
new Test();
new Test();
System.out.println(Test.count);
}
}
medium
A. Compilation error
B. 1
C. 0
D. 2
Solution
Step 1: Understand static variable incrementation
Each time a new Test object is created, the constructor increments count by 1.
Step 2: Count the number of objects created
Two objects are created, so count becomes 2.
Final Answer:
2 -> Option D
Quick Check:
Two objects increment count twice = 2 [OK]
Hint: Static count increments with each new object [OK]
Common Mistakes:
Assuming count resets for each object
Confusing instance and static variables
Expecting compilation error due to static usage
4. Identify the error in the following code snippet:
class Counter {
static int count;
void increment() {
count++;
}
public static void main(String[] args) {
Counter c = new Counter();
c.increment();
System.out.println(count);
}
}
medium
A. Cannot access static variable from instance method.
B. No error; code runs and prints 1.
C. Cannot access static variable directly in static method without class name.
D. Static variable count is not initialized.
Solution
Step 1: Check static variable initialization
Static int variables default to 0 if not explicitly initialized.
Step 2: Verify method calls and access
The instance method increment() correctly increments the static variable. The static method main accesses count directly, which is allowed.
Final Answer:
No error; code runs and prints 1. -> Option B
Quick Check:
Static variable accessible and increments correctly [OK]
Hint: Static vars default to 0; accessible in static main [OK]
Common Mistakes:
Thinking static vars must be explicitly initialized
Assuming static vars can't be accessed without class name inside same class
Confusing instance and static method access rules
5. Consider this Java class:
class Employee {
static int employeeCount = 0;
String name;
Employee(String name) {
this.name = name;
employeeCount++;
}
static void printCount() {
System.out.println("Total employees: " + employeeCount);
}
}
public class Main {
public static void main(String[] args) {
Employee e1 = new Employee("Alice");
Employee e2 = new Employee("Bob");
e1.printCount();
Employee.printCount();
}
}
What will be the output when running Main?
hard
A. Total employees: 1
Total employees: 2
B. Total employees: 2
Total employees: 1
C. Total employees: 2
Total employees: 2
D. Compilation error due to calling static method on instance
Solution
Step 1: Count employees created
Two Employee objects are created, so employeeCount becomes 2.
Step 2: Understand static method calls
Calling printCount() on instance e1 or class Employee both print the same static variable value.
Final Answer:
Total employees: 2
Total employees: 2 -> Option C
Quick Check:
Static method prints shared count = 2 [OK]
Hint: Static method prints shared count; instance call allowed [OK]
Common Mistakes:
Thinking static method can't be called on instance
Assuming employeeCount resets per object
Confusing output order or values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.