当前位置:  开发笔记 > 编程语言 > 正文

Breakpoint命中Hashmap.put()一个简单的Hello World程序

如何解决《Breakpoint命中Hashmap.put()一个简单的HelloWorld程序》经验,为你挑选了2个好方法。

程序很简单:

public class HelloWorld {
    public static void main(String args[]){
       System.out.println("Hello World");
    }
}

现在我put(K key, V value)在HashMap.class 中将断点设置为函数

public V put(K key, V value) {
    if (table == EMPTY_TABLE) {
        inflateTable(threshold);
    }
    if (key == null)
        return putForNullKey(value);
    int hash = hash(key);

然后我开始调试HelloWorld.class,它将运行到HashMap中的断点.我很奇怪它put()在HashMap中会遇到什么问题?
我尝试过HashMap,Hashtable,它们都是一样的.



1> VAndrei..:

这是我在重现场景时获得的堆栈跟踪.

当Eclipse启动应用程序时,它不会简单地进入Main函数.在创建实例之前,需要将类加载到JVM中.为此,将使用类加载器.

在您的情况下,URLClassLoader具有使用HashMap对象的URLClassPath类型的成员.

在此输入图像描述



2> Gergely Bacs..:

这是因为Eclipse启动应用程序的方式.

LauncherHelper运行应用程序的Eclipse 类(HelloWorld)调用了一大堆URLClassLoader其他东西.该URLClassLoader的使用HashMaps,HashTables等等.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有