Bird
Raised Fist0
Javaprogramming~10 mins

Stack memory in Java - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a stack of integers using Java's Stack class.

Java
Stack<Integer> numbers = new [1]<>();
Drag options to blanks, or click blank then click option'
AArrayList
BStack
CLinkedList
DHashSet
Attempts:
3 left
💡 Hint
Common Mistakes
Using ArrayList or LinkedList instead of Stack.
Forgetting to specify the generic type.
2fill in blank
medium

Complete the code to add an element to the top of the stack.

Java
numbers.[1](10);
Drag options to blanks, or click blank then click option'
Apush
Badd
Cinsert
Doffer
Attempts:
3 left
💡 Hint
Common Mistakes
Using add which works for lists but is not the stack method.
Using offer which is for queues.
3fill in blank
hard

Fix the error in the code to remove the top element from the stack.

Java
int top = numbers.[1]();
Drag options to blanks, or click blank then click option'
Apoll
Bremove
Cpop
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using remove which requires an index or object.
Using poll which is for queues.
4fill in blank
hard

Fill both blanks to check if the stack is empty and print a message.

Java
if (numbers.[1]()) {
    System.out.println("Stack is [2].");
}
Drag options to blanks, or click blank then click option'
AisEmpty
Bempty
Cfull
Dclear
Attempts:
3 left
💡 Hint
Common Mistakes
Using empty() method which exists but returns a boolean differently.
Using full() or clear() which are not correct here.
5fill in blank
hard

Fill all three blanks to create a stack, push two elements, and pop one.

Java
Stack<String> stack = new [1]<>();
stack.[2]("apple");
stack.[3]();
Drag options to blanks, or click blank then click option'
AStack
Bpush
Cpop
Dadd
Attempts:
3 left
💡 Hint
Common Mistakes
Using add instead of push.
Using remove or delete instead of pop.

Practice

(1/5)
1. What does stack memory primarily store in Java?
easy
A. Method calls and local variables
B. Objects and class variables
C. Static variables and constants
D. Files and network connections

Solution

  1. Step 1: Understand stack memory role

    Stack memory stores data related to method execution like local variables and method calls.
  2. Step 2: Differentiate from heap memory

    Heap stores objects, while stack stores method calls and local variables.
  3. Final Answer:

    Method calls and local variables -> Option A
  4. Quick Check:

    Stack memory = method calls + local variables [OK]
Hint: Stack = method calls + local variables [OK]
Common Mistakes:
  • Confusing stack with heap memory
  • Thinking objects are stored in stack
  • Mixing static variables with stack data
2. Which of the following is the correct way to declare a local variable inside a method in Java?
easy
A. static int x = 10;
B. local int x = 10;
C. var int x = 10;
D. int x = 10;

Solution

  1. Step 1: Recall local variable syntax

    Local variables inside methods are declared simply with type and name, e.g., int x = 10;
  2. Step 2: Identify invalid keywords

    Keywords like 'local' or 'var int' are invalid in Java, and 'static' is not allowed for local variables.
  3. Final Answer:

    int x = 10; -> Option D
  4. Quick Check:

    Local variable syntax = type + name + value [OK]
Hint: Local vars: type name = value; no extra keywords [OK]
Common Mistakes:
  • Using 'local' keyword which doesn't exist
  • Trying to use 'static' inside methods
  • Confusing 'var' usage in older Java versions
3. What will be the output of this Java code?
public class Test {
  public static void main(String[] args) {
    int a = 5;
    int b = 10;
    int c = add(a, b);
    System.out.println(c);
  }
  public static int add(int x, int y) {
    return x + y;
  }
}
medium
A. 15
B. 510
C. Compilation error
D. Runtime error

Solution

  1. Step 1: Trace method calls and parameters

    Main calls add(5, 10), passing values 5 and 10 as local variables on the stack.
  2. Step 2: Calculate return value

    Add method returns 5 + 10 = 15, which is stored in c and printed.
  3. Final Answer:

    15 -> Option A
  4. Quick Check:

    5 + 10 = 15 [OK]
Hint: Add method returns sum; print result [OK]
Common Mistakes:
  • Concatenating numbers as strings
  • Confusing method parameters with global variables
  • Expecting runtime or compile errors
4. Identify the error in this Java code related to stack memory usage:
public class Demo {
  public static void main(String[] args) {
    int result = factorial(4);
    System.out.println(result);
  }
  public static int factorial(int n) {
    if (n == 0) return 1;
    else return n * factorial(n - 1);
  }
}
medium
A. Stack overflow due to too many local variables
B. Missing base case causing infinite recursion
C. No error, code runs correctly
D. Incorrect method return type

Solution

  1. Step 1: Check recursion base case

    The factorial method has a base case: if n == 0 return 1, stopping recursion.
  2. Step 2: Confirm recursion correctness

    Each recursive call reduces n by 1, so recursion ends properly without stack overflow.
  3. Final Answer:

    No error, code runs correctly -> Option C
  4. Quick Check:

    Base case present, recursion safe [OK]
Hint: Check for base case to avoid stack overflow [OK]
Common Mistakes:
  • Assuming missing base case when it exists
  • Confusing local variables with stack overflow cause
  • Thinking return type is wrong
5. Consider this recursive method that calculates the sum of numbers from n down to 1:
public static int sum(int n) {
  if (n <= 0) return 0;
  else return n + sum(n - 1);
}

What will happen if you call sum(1000000) in Java, and why?
hard
A. It will return the correct sum without issues
B. It will cause a stack overflow error due to deep recursion
C. It will run infinitely without stopping
D. It will cause a compile-time error

Solution

  1. Step 1: Analyze recursion depth

    Calling sum(1000000) causes 1,000,000 recursive calls, each adding a stack frame.
  2. Step 2: Understand stack memory limits

    Java's stack size is limited; deep recursion like this exceeds it, causing stack overflow error.
  3. Final Answer:

    It will cause a stack overflow error due to deep recursion -> Option B
  4. Quick Check:

    Deep recursion > stack size = stack overflow [OK]
Hint: Very deep recursion causes stack overflow error [OK]
Common Mistakes:
  • Assuming recursion always works regardless of depth
  • Thinking it runs infinitely without base case
  • Confusing runtime errors with compile errors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard