classファイルを変更してありえない名前のメソッドを作る

先日の続きをやってみます。
今度は、"this"という名前に変えてみました。74 68 69 73です。
javapでclassファイルを見てみるとこんな感じです。

C:\home\eclipse\test>javap InvisibleMethod
Compiled from "InvisibleMethod.java"
class InvisibleMethod extends java.lang.Object{
    InvisibleMethod();
    void this();
    public static void main(java.lang.String[]);
}

変だwww。しかしチャンと動きます。
jadで逆コンパイルすると、"_mththis"という名前になりました。
jadはだませません。結構賢いですね。>jad

// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   InvisibleMethod.java

import java.io.PrintStream;

class InvisibleMethod
{

    InvisibleMethod()
    {
    }

    void _mththis()
    {
        System.out.println("hoge");
    }

    public static void main(String args[])
    {
        (new InvisibleMethod())._mththis();
    }
}

もうひとつ別の名前でやってみました。"(^^;" です。28 5E 5E 3Bです。

C:\home\eclipse\test>javap InvisibleMethod
Compiled from "InvisibleMethod.java"
class InvisibleMethod extends java.lang.Object{
    InvisibleMethod();
    void (^^;();
    public static void main(java.lang.String[]);
}

ははは、楽しいメソッド名です。(^^;
でもやっぱりチャンと動きます。
Jadではこんな感じになります。

// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   InvisibleMethod.java

import java.io.PrintStream;

class InvisibleMethod
{

    InvisibleMethod()
    {
    }

    void _28__5E__5E__3B_()
    {
        System.out.println("hoge");
    }

    public static void main(String args[])
    {
        (new InvisibleMethod())._28__5E__5E__3B_();
    }
}