这是一个简单的二进制搜索代码,当我为了更好地理解它而调试它时,我在调试面板中得到了这样的注释a = int[10]@9 --它意味着什么(特别是类型后面的"@9“部分)?

/**
* BinarySearch
*/
public class BinarySearch {
public static void main(String[] args) {
int a[]={1,3,5,14,22,37,54,77,99,110},target=99 ;
System.out.println(binarysearch(a,target));
}
static int binarysearch(int a[], int target)
{
int s=0,e=a.length-1;
int mid;
while(s<=e)
{
mid=s+e/2; //mid= 4
if(target<a[mid]) //false
e=mid-1;//
else if(target > a[mid])//true
s=mid+1;
else if(a[mid]==target) {
return mid;
}
}
return -1;
}
}发布于 2022-09-28 17:45:49
默认情况下,调试器显示对象的toString()值。由于数组不覆盖toString()方法,因此它只使用从Object继承的默认实现。
正如文档中所说的这里,字符串的构造方式如下:
getClass().getName() + '@' + Integer.toHexString(hashCode())所以,这正是您所看到的:类名、@符号和哈希代码。
发布于 2022-09-28 17:58:19
一些调试器用反映对象的“标识”的额外唯一数字注释对象,因此您可以很容易地判断两个不同的引用是引用同一个对象,还是引用两个具有相同值的对象。这并不总是另一个答案中提到的“标识哈希代码”,但是可以引用测试场景中的“这是分配的Nth对象”。
https://stackoverflow.com/questions/73885738
复制相似问题