第二天总结:
以前一直不知道,什么时候虚拟机把类加载进内存。。。。。
只是知道在new对象的时候,肯定是把类加载进了内存
今天重新看视频,终于明白了,只有在调用类中的内容时,虚拟机才会把类加载进内存
如果没有调用类中的内容,虚拟机是不会把类加载进内存
比如,有个类叫Person.
class Person
{
public static void say()
{
System.out.println("Per son Saying");
}
}
主函数当中:
Person p = null;
此时虚拟机是不会把Person加载进内存,原因是,只是定义了一个该类的引用为null,而并没有调用类中内容,
如果因此就把类加载进内存,太浪费内存资源。
如果在主函数当中:
Person p = new Person();
此时,调用了类中默认的构造方法,该类会被加载进内存,证明方法:可以定义一个静态代码块,如果执行了里面的语句,说明类被加载
如果在主函数当中:
Person.say();
此时调用了类当中的静态方法,类也会被加载进内存。
|