首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么VSCode在调试时为数组显示奇怪的"@number“(如int[10]@9)?

为什么VSCode在调试时为数组显示奇怪的"@number“(如int[10]@9)?
EN

Stack Overflow用户
提问于 2022-09-28 17:39:22
回答 2查看 78关注 0票数 2

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

代码语言:javascript
复制
/**
 * 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;
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-28 17:45:49

默认情况下,调试器显示对象的toString()值。由于数组不覆盖toString()方法,因此它只使用从Object继承的默认实现。

正如文档中所说的这里,字符串的构造方式如下:

代码语言:javascript
复制
getClass().getName() + '@' + Integer.toHexString(hashCode())

所以,这正是您所看到的:类名、@符号和哈希代码。

票数 1
EN

Stack Overflow用户

发布于 2022-09-28 17:58:19

一些调试器用反映对象的“标识”的额外唯一数字注释对象,因此您可以很容易地判断两个不同的引用是引用同一个对象,还是引用两个具有相同值的对象。这并不总是另一个答案中提到的“标识哈希代码”,但是可以引用测试场景中的“这是分配的Nth对象”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73885738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档