Java — Identify which class-level (non-local) variable declarations will not compile

Java Programming Declarations and Access Control Difficulty: Easy
Choose an option
  • A
    protected int a;
  • B
    transient int b = 3;
  • C
    private synchronized int e;
  • D
    volatile int d;

Answer

Correct Answer: private synchronized int e;

Explanation

Introduction / Context:This question tests knowledge of valid modifiers for class-level (non-local) variables in Java. Some modifiers are allowed for variables, while others are only valid for methods.

Given Data / Assumptions:

  • Scope: class-level variables, not local or method-level.
  • Keywords in play: protected, transient, synchronized, volatile.

Concept / Approach:For variables:

  • Access modifiers (public, protected, private) are valid.
  • transient and volatile are valid modifiers for variables.
  • synchronized is not valid for variables; it only applies to methods or blocks.

Step-by-Step Reasoning:

protected int a; → Valid.transient int b = 3; → Valid for serialization behavior.private synchronized int e; → Invalid because synchronized cannot be applied to variables.volatile int d; → Valid, ensures visibility across threads.

Why Other Options Are Wrong:All except synchronized are legal modifiers for variables.

Common Pitfalls:Confusing synchronized with volatile; synchronized is only for methods/blocks, not variables.

Final Answer:private synchronized int e;

Discussion & Comments
No comments yet. Be the first to comment!
Join Discussion