作者:深圳教育在线 来源:www.szedu.net 更新日期:2009-9-22
三、特定字符串(Special Strings) 常量池中的字符引用包含三种特定字符串:全限定名,简单名,描述符。一个类或者接口的所有字符引用都必须包含一个全限定名。每一个字段或者方法都有一个简 单名和描述符作为全限定名的补充。这些特定字符串用来表示文件中定义的类和接口,包换类名,父类名,父接口名,每个字段和方法的简单名和描述符。 1、全名(Fully Qualified Names) 当常量池中引用了类和接口时,就会提供这个类或者接口的权限定名,比如java.lang.Object。 2、简单名(Simple Names) 字段和方法都以简单名的形式保存在常量池中。比如常量池中有一个java.lang.Object类的String toString()方法的引用,就会保存“toString”;java.lang.System类的java.io.PrintStream out字段,被保存为“out”。 3、描述符(Descripters) 字段和方法的字符引用都会包含一个描述符。字段的描述符提供了字段的类型。方法的描述符提供了方法的返回值、参数个数、参数类型。所有描述符得类型列表: FieldDescriptor: FieldType ComponentType: FieldType FieldType: BaseType ObjectType ArrayType BaseType: Terminal Type B byte C char D double F float I int J long S short Z boolean ObjectType: L<classname>; ArrayType: [ ComponentType ParameterDescriptor: FieldType MethodDescriptor: ( ParameterDescriptor* ) ReturnDescriptor ReturnDescriptor: FieldType V Table 6-6. Examples of field descriptors Descriptor Field Declaration I int i; [[J long[][] windingRoad; [Ljava/lang/Object; java.lang.Object[] stuff; Ljava/util/Hashtable; java.util.Hashtable ht; [[[Z boolean[][][] isReady; Table 6-7. Examples of method descriptors Descriptor Method Declaration ()I int getSize(); ()Ljava/lang/String; String toString(); ([Ljava/lang/String;)V void main(String[] args); ()V void wait() (JI)V void wait(long timeout, int nanos) (ZILjava/lang/String;II)Z boolean regionMatches(boolean ignoreCase, int toOffset, String other, int ooffset, int len); ([BII)I int read(byte[] b, int off, int len);[本文共有 4 页,当前是第 3 页] <<上一页 下一页>>
|