Question: Say we have the following classes:

```
class DoubleOhSeven {
  public static void doSomethingClassy();
  public static void neverDoThisClassy();
}

class Dude {
  public void doSomething();
  public void neverDoThis();
}

public class Party {
  public static void main(String[] args){
    DoubleOhSeven.doSomething();
    Dude guy = new Dude;
    guy.doSomething();
  }
}

```

Of course, all the methods will be compiled into their respective `.class`: do the unused static/instance methods occupy memory at run time? What about unused inherited or imported methods?

Answer: 
The unused methods inrease the class size, but classes are stored in a so called PermGen memory. The heap memory, where regular java objects are stored, is not affected by class size
The method can be compiled and loaded to PerGen.

But JVM maybe `optimize` method using `method inlining`.

Eg:

```
public class Test {

    public void foo(){
        System.out.println("foo");
        bar();
    }

    public void bar(){
        System.out.println("bar");
    }
}

```

The method will be compiled like this by JIT compiler:

```
public void foo(){
    System.out.println("foo");
    System.out.println("bar");
}

```

So, the empty method will never be invoked.