在Java中,array是一个类并扩展了Object.我很想知道这个特殊的数组类.我没有在任何地方找到类定义.执行getClass().getName()会得到奇怪的结果.
String[] array = new String[]{"one","two"};
System.out.println(array.getClass().getName()); // prints [Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)
我想了解阵列是如何工作的.数组类定义是否在JVM中进行了硬编码?
任何资源,书籍,链接都会有所帮助.
谢谢.
Class.getName
清楚地指定这些"时髦"的数组名称:
如果此类对象表示不是数组类型的引用类型,则返回类的二进制名称,如Java语言规范第二版所指定.
如果此类对象表示基本类型或void,则返回的名称
String
等于与基本类型对应的Java语言关键字或void
.如果此类对象表示一个数组类,则名称的内部形式由元素类型的名称组成,前面是一个或多个
'['
表示数组嵌套深度的字符.元素类型名称的编码如下:Run Code Online (Sandbox Code Playgroud)Element Type Encoding boolean Z byte B char C double D float F int I long J short S class or interface Lclassname;
数组类型的成员是以下所有成员:
- 的
public final field length
,其中包含所述阵列的组件的数量(长度可以是正的或零)- 的
public method clone
,它会覆盖类同名的方法Object
,并没有抛出checked异常- 所有成员都继承自
class Object
; 唯一Object
没有继承的clone
方法是它的方法
归档时间: |
|
查看次数: |
3907 次 |
最近记录: |