相信学java的小伙伴们,都看过文章或者听老师讲过,类初次使用的时候,会加载到内存,有一个类加载器的存在。但是如何验证呢? 你说有就有?如何去验证? 我提供一种方法哈,大家有别的方法也可以在评论区说一下哈。
public class Student {
}
public class Main {
public static void main(String[] args) {
Student student = new Student();
}
}
上面代码是一个Student类,和一个Main类,在Main中new 一个Student对象。 根据我们的知识,第一次加载Studnet类,类加载器会加载它的信息到内存。在方法区有类信息,在堆区有Class类对象。 下面根据debug跟进
开始debug,点击如下图 点击step into 见证奇迹的时刻来了 类加载的详细过程就不跟进了,咋们这篇文章只是说明他真的存在。
相信小伙伴们迫不及待开始尝试一下了,但是会发现观察不看这个现象,哈哈哈哈哈哈哈哈哈 不是我骗人哈,是因为idea默认不显示这些过程。大家需要做一些设置, 如下图 打开Settings,把Skip class loaders 勾选取消。 那么大家就可以开始操作了。
这里我突然有了一个想法,为什么idea默认不让我们看这些内容呢?这样不是不让我们获取知识吗?不利于我们学习啊。
我是这样认为的,idea作为一款java编辑工具,必须考虑用户的体验吧。 如果默认可以进入类加载过程,那么一个java初学者想调试一下代码,那么他就会陷入底层的类加载等复杂过程, 自己的业务代码还没调试到,估计就放弃了。就好像在计算机没有图形界面之前,大家如果要玩电脑必须先记住若干命令,那么我为了听个歌曲,还去记几个命令,岂不是太复杂,有了图形界面,底层命令用户不需要知道,计算机用户更方便了,用户也就多了,电脑也就走进了千家万户。 所以说原理都是一样的,java封装不也是这个意思么,面向接口编程不也是吗?思维哪里有一样,只是不同的地方不同的实现而已。
|