方法名+方法签名。
如代码:
public class Test {
private void test() {
}
private void test(String str) {
}
public static void main(String[] args) {
}
public Test() {
}
}
调用javap -s -p 后结果如下:
njgarychows-MacBook-Air:Desktop njgarychow$ javap -s -p Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
private void test();
Signature: ()V
private void test(java.lang.String);
Signature: (Ljava/lang/String;)V
public static void main(java.lang.String[]);
Signature: ([Ljava/lang/String;)V
public Test();
Signature: ()V
}
构造方法Test()和test()方法生成的方法签名都是()V,这两者jvm是通过方法名的不同来区别的。
而test()和test(String)方法的方法名相同,但是前者的签名为()V,后者签名为(Ljava/lang/String;)V,重载就是通过这种方式实现的。