问题描述
- 我将jdk的src源文件放在自己工程下面,为啥每次加载还是jdk1.5里面的.class文件?
- 我将Class.java直接写在自己工程里面,为啥自己代码引用到的还是jdk1.5里面的.class文件
有哥哥姐姐们知道原因的吗,求帮忙解决。
解决方案
在创建项目的时候有可以选择jdk版本的
解决方案二:
你虽然自己写了一个同名的类,但是并没有加载你这个类,jdk自己的类(包名+类名)不会因为你同名就加载你这个。。可能我解释的不怎么清楚,类加载机制的知识也还得补。。但是大概原理就是这样。
解决方案三:
Java的类加载是双亲委派机制,它保证各个类加载器加载Java基础类的统一问题,越是基础类越是由上层加载器进行加载的。所以你即便定义了一个与jdk源码基础类同名的类,但是最终系统中加载的还是基础类库中的类。即你不可能篡改基础类库的,这是由类加载器保证的。
时间: 2024-12-03 07:58:34