宜春 2019-11-16 07:28 采纳率: 50%
浏览 347

关于JVM命名空间问题,求助大佬!!!

首先命名空间的概念:

每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成。

在同一个命名空间中,不会出现类的完整名字(包括类的包名)相同的两个类。

在不同的命名空间中,有可能会出现类的完整名字(包括类的包名)相同的两个类。

我举出两种情景:

1、创建一个自定义加载器,加载classpath中的class文件,自定义加载器两个实例分别加载这个class文件,这个时候 命名空间一致 (class文件由父类系统加载器加载)

2、classpath中的class文件删了将其放到电脑桌面位置【也就是系统加载器加载不了最终由自定义加载器加载】,同样两个实例 这个时候,命名空间不一致 (自定义加载器加载)

那么

第一种情况相同命名空间大概可表示为:系统加载器.类名.包名 【有错吗?】

第二种情况的不同命名空间大概可表示为:自定义加载器实例1.类名.包名 以及 自定义加载器实例2.类名.包名

不知我上面是不是理解错了?

命名空间由该加载器及所有父加载器所加载的类组成。

这句话中的该加载器是指的真正加载这个类的加载器吗?
那这句话又怎么理解,还望大佬指点!

  • 写回答

1条回答 默认 最新

  • aa20191111 2019-11-16 09:22
    关注

    既然在普通的 Java 项目中没有问题,那么就要对比检查 Java Web 环境下 WEB-INF/lib 下的 Jar 包和普通 Java 工程的导入包是否一样。
    接着就是配置文件,因为 Web 环境跟普通 Java 工程的连接过程还是有区别的。

    评论

    报告相同问题?

    悬赏问题

    • ¥15 页面调接口时加载卡住不响应
    • ¥35 用C语言解决编程问题
    • ¥15 unity硬件连接与使用
    • ¥15 鱼缸加热棒的数据分析或者实际案例也行
    • ¥15 postgresql11安装完成后,pgadmin无法启动
    • ¥15 (标签-无人机|关键词-Matlab代码)
    • ¥15 执行shell脚本提示参数太多
    • ¥15 困扰好久了,电脑的串口调试助手向单片机发送一个字符(如:字符‘1’到‘8’),单片机点亮对应的灯(如发送字符‘2’则点亮第2个灯)并给电脑回复信息:已点亮第x个灯(其中 x 要替换成对应的数字)
    • ¥15 求减少这个c++程序内存的解决方案
    • ¥30 改正代码,错误比较多