fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import javax.tools.ToolProvider;
  4. import java.lang.invoke.MethodHandles;
  5. import java.math.BigInteger;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone {
  9. public static void scopeExample() {
  10. { // uses slot zero and slot one
  11. int x = 42;
  12. String s = "hello";
  13. }
  14. { // reuses slot zero and one for one long
  15. long l = 0xcafebabeL;
  16. }
  17. { // again uses slot zero and slot one
  18. float f = 1.234f;
  19. }
  20. }
  21. public static void main (String[] args) throws java.lang.Exception {
  22. disasm();
  23. }
  24. private static void disasm() {
  25. try {
  26. MethodHandles.lookup().unreflect(
  27. Class.forName("com.sun.tools.javap.Main", false, ToolProvider.getSystemToolClassLoader())
  28. .getMethod("main", String[].class))
  29. .asVarargsCollector(String[].class)
  30. .invoke("-c", Ideone.class.getName());
  31. } catch(Throwable t) { t.printStackTrace(); }
  32. }
  33. private Ideone() {}
  34. }
Success #stdin #stdout 0.9s 71928KB
stdin
Standard input is empty
stdout
Compiled from "Main.java"
class Ideone {
  public static void scopeExample();
    Code:
       0: bipush        42
       2: istore_0
       3: ldc           #1                  // String hello
       5: astore_1
       6: ldc2_w        #2                  // long 3405691582l
       9: lstore_0
      10: getstatic     #4                  // Field java/math/BigInteger.ONE:Ljava/math/BigInteger;
      13: astore_0
      14: ldc           #5                  // float 1.234f
      16: fstore_1
      17: return

  public static void main(java.lang.String[]) throws java.lang.Exception;
    Code:
       0: invokestatic  #6                  // Method disasm:()V
       3: return
}