这是一个简单的二进制搜索代码,当我调试它以更好地理解它时,我在调试面板中看到了这个注解a = int[10]@9
-它是什么意思(特别是类型后面的“@9”部分)?x1c 0d1x
/**
* 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;
}
}
2条答案
按热度按时间jgzswidk1#
一些调试器用一个 * 额外的 * 唯一的数字来注解对象,这个数字反映了对象的“身份”,这样你就可以很容易地分辨出是两个不同的引用在引用同一个对象,还是两个对象有相同的值。这并不总是在另一个答案中引用的“身份散列代码”,但在测试场景中可以引用“这是分配的第N个对象”。
ehxuflar2#
默认情况下,调试器显示对象的toString()值。由于数组不覆盖toString()方法,它只使用从
Object
继承的默认实现。如本文所述,字符串的构造方式如下:
这就是你所看到的类名、“@”符号和哈希代码。