Raghav Sood Raghav Sood - 1 year ago 75
Java Question

How does Java's switch work under the hood?

How does Java's switch statement work under the hood? How does it compare the value of the variable being used, to those given in the case parts? Does it use

, or is it something else entirely?

I'm mainly interested in the pre 1.7 versions.

Answer Source

Neither. it uses the lookupswitch JVM instruction, which is essentially a table lookup. Take a look at the bytecode of the following example:

public static void main(String... args) {
  switch (1) {
  case 1:
  case 2:

public static void main(java.lang.String[]);
   Stack=1, Locals=1, Args_size=1
   0:   iconst_1
   1:   lookupswitch{ //2
                1: 28;
                2: 31;
                default: 31 }
   28:  goto    31
   31:  return
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download