栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

这是什么:[Ljava.lang.Object ;?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

这是什么:[Ljava.lang.Object ;?

[Ljava.lang.Object
;是的名称
Object[].class,java.lang.Class
代表的数组的类
Object

命名方案记录在

Class.getName()

如果该类对象表示的引用类型不是数组类型,则返回该类的二进制名称,如Java语言规范(§13.1)所指定。

如果此类对象表示原始类型或void,则返回的名称是与原始类型或对应的Java语言关键字void。

如果此类对象表示一类数组,则名称的内部形式由元素类型的名称组成,后跟一个或多个’[‘表示数组嵌套深度的字符。元素类型名称的编码如下:

Element Type        Encodingboolean  Zbyte     Bchar     Cdouble   Dfloat    Fint      Ilong     Jshort    S class or interface  Lclassname;

你的是该列表中的最后一个。这里有些例子:

// xxxxx variesSystem.out.println(new int[0][0][7]); // [[[I@xxxxxSystem.out.println(new String[4][2]); // [[Ljava.lang.String;@xxxxxSystem.out.println(new boolean[256]); // [Z@xxxxx

之所以以这种格式

toString()
返回数组上的方法,
String
是因为数组没有
@Override
继承自的方法Object,该方法指定如下:

toString
用于类
Object
的方法返回一个字符串,该字符串由对象作为实例的类的名称,符号字符“ @”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回的字符串等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

注意:你不能依赖

toString()
任何任意对象来遵循上述规范,因为它们可以(通常这样做)@Override返回其他内容。检查任意对象类型的更可靠方法是
getClass()
在其上调用(
final
从继承的方法
Object
),然后在返回的对象上进行反射Class。不过,理想情况下,API的设计应该使得不需要反射(请参阅 Effective Java 2nd Edition,第53项:首选反射接口)。

toString对数组更“有用”
java.util.Arrays提供toString原始数组和的重载Object[]。还deepToString可能需要将其用于嵌套数组。

这里有些例子:

int[] nums = { 1, 2, 3 };System.out.println(nums);// [I@xxxxxSystem.out.println(Arrays.toString(nums));// [1, 2, 3]int[][] table = {        { 1, },        { 2, 3, },        { 4, 5, 6, },};System.out.println(Arrays.toString(table));// [[I@xxxxx, [I@yyyyy, [I@zzzzz]System.out.println(Arrays.deepToString(table));// [[1], [2, 3], [4, 5, 6]]

在许多其他与数组相关的实用程序方法中,还有

Arrays.equals
Arrays.deepEquals
通过它们的元素执行数组相等性比较。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号