Object lifetime is the period during which an object exists in memory, from creation until it is no longer reachable and is removed by the garbage collector.
Click to reveal answer
beginner
When does an object in Java get created?
An object is created when the new keyword is used, which allocates memory for the object on the heap.
Click to reveal answer
beginner
What causes an object to become eligible for garbage collection?
An object becomes eligible for garbage collection when there are no more references pointing to it, meaning the program can no longer access it.
Click to reveal answer
intermediate
Explain the role of the garbage collector in object lifetime.
The garbage collector automatically frees memory by removing objects that are no longer reachable, ending their lifetime and preventing memory leaks.
Click to reveal answer
intermediate
What happens if an object is still referenced but no longer needed?
If an object is still referenced, it will not be collected by the garbage collector, even if it is no longer needed, which can cause memory to be used unnecessarily.
Click to reveal answer
When is an object in Java removed from memory?
AWhen there are no references to it and the garbage collector runs
BImmediately after creation
CWhen the program ends
DWhen the object is declared
✗ Incorrect
Objects are removed only when they have no references and the garbage collector frees their memory.
What keyword is used to create a new object in Java?
Acreate
Bnew
Cobject
Dinit
✗ Incorrect
The new keyword allocates memory and creates a new object.
Which memory area stores Java objects during their lifetime?
AHeap
BRegister
CMethod area
DStack
✗ Incorrect
Objects are stored in the heap memory area during their lifetime.
What happens if an object is still referenced but no longer needed?
AIt is immediately deleted
BIt causes a compile error
CIt remains in memory, possibly causing a memory leak
DIt is moved to stack memory
✗ Incorrect
Objects still referenced are not collected and can cause memory leaks if unused.
Which of these is NOT true about Java's garbage collector?
AIt helps prevent memory leaks
BIt frees memory of unreachable objects
CIt runs automatically
DIt guarantees immediate object removal after no references
✗ Incorrect
Garbage collection timing is not immediate or guaranteed right after references are lost.
Describe the lifecycle of a Java object from creation to removal.
Think about how an object starts, lives, and ends in memory.
You got /5 concepts.
Explain why understanding object lifetime is important for Java programmers.
Consider how object lifetime affects program performance and stability.
You got /4 concepts.
Practice
(1/5)
1. Which statement best describes the lifetime of an object in Java?
easy
A. An object exists as long as there is at least one reference to it.
B. An object exists only during the execution of the main method.
C. An object is deleted immediately after it is created.
D. An object exists forever once created, regardless of references.
Solution
Step 1: Understand object references in Java
Objects are created using new and remain in memory while referenced.
Step 2: Recognize garbage collection behavior
When no references point to an object, Java's garbage collector can remove it.
Final Answer:
An object exists as long as there is at least one reference to it. -> Option A
Quick Check:
Object lifetime depends on references [OK]
Hint: Remember: objects live while referenced, else garbage collected [OK]
Common Mistakes:
Thinking objects exist only during main method
Believing objects are deleted immediately after creation
Assuming objects live forever regardless of references
2. Which of the following is the correct way to create a new object in Java?
easy
A. MyClass obj = MyClass();
B. MyClass obj = create MyClass();
C. MyClass obj = new MyClass();
D. MyClass obj = new MyClass;
Solution
Step 1: Recall Java object creation syntax
Objects are created using the new keyword followed by the constructor call with parentheses.
Step 2: Check each option's syntax
MyClass obj = new MyClass(); uses correct syntax: new MyClass();. Options A, C, and D are incorrect due to missing new, wrong keywords, or missing parentheses.
Final Answer:
MyClass obj = new MyClass(); -> Option C
Quick Check:
Use new ClassName() to create objects [OK]
Hint: Use 'new' keyword plus parentheses to create objects [OK]
Common Mistakes:
Omitting the 'new' keyword
Forgetting parentheses after class name
Using incorrect keywords like 'create'
3. What will be the output of the following code?
class Test {
public static void main(String[] args) {
Test obj1 = new Test();
Test obj2 = obj1;
obj1 = null;
if (obj2 != null) {
System.out.println("Object alive");
} else {
System.out.println("Object dead");
}
}
}
medium
A. Runtime exception
B. Object dead
C. Compilation error
D. Object alive
Solution
Step 1: Analyze object references
Initially, obj1 points to the new object. Then obj2 also points to the same object.
Step 2: Check effect of setting obj1 to null
Setting obj1 to null removes one reference, but obj2 still references the object, so it remains alive.
Final Answer:
Object alive -> Option D
Quick Check:
Object lives while any reference exists [OK]
Hint: Object stays alive if any reference points to it [OK]
Common Mistakes:
Assuming object is dead after one reference is null
Confusing references with object existence
Expecting compilation or runtime errors
4. Identify the error in the following code related to object lifetime:
public class Demo {
public static void main(String[] args) {
String s = new String("Hello");
s = null;
System.out.println(s.length());
}
}
medium
A. Compilation error due to missing import
B. NullPointerException at runtime
C. No error, prints length of string
D. Syntax error in object creation
Solution
Step 1: Understand object reference and null assignment
The variable s initially references a String object, then is set to null, removing the reference.
Step 2: Analyze method call on null reference
Calling s.length() when s is null causes a NullPointerException at runtime.
Final Answer:
NullPointerException at runtime -> Option B
Quick Check:
Calling methods on null causes NullPointerException [OK]
Hint: Never call methods on null references [OK]
Common Mistakes:
Thinking code compiles but runs fine
Expecting compilation errors instead of runtime
Ignoring null assignment effect
5. Consider the following code snippet:
class Node {
Node next;
int value;
Node(int v) { value = v; }
}
public class Test {
public static void main(String[] args) {
Node a = new Node(1);
Node b = new Node(2);
a.next = b;
b = null;
// Which objects are eligible for garbage collection here?
}
}
Which objects are eligible for garbage collection after setting b = null;?
hard
A. No objects are eligible because a still references b through next.
B. Only object b is eligible because b reference is null.
C. Both a and b objects are eligible for garbage collection.
D. Only object a is eligible because b is null.
Solution
Step 1: Analyze references to objects
Variable a references the first Node object. Its next field references the second Node object originally referenced by b.
Step 2: Understand effect of setting b to null
Setting b to null removes one reference to the second Node, but a.next still references it, so it is not eligible for garbage collection.
Final Answer:
No objects are eligible because a still references b through next. -> Option A
Quick Check:
Objects live while any reference exists [OK]
Hint: Check all references, including fields, before assuming garbage collection [OK]
Common Mistakes:
Assuming null variable means object is collectible
Ignoring references inside other objects
Confusing variable nullification with object lifetime
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.