00:00
嗯。嗯。那行了各位啊,那咱们再往下的话。就继续吧,继续啊,我们来看一看这个class for name,它的执行到底发生了什么。行吧,看一看这个class它的执行到底发生了什么,是不是发生类加载。啊,来这个过了啊在这呢,我们去加上去一个class。这个叫做啊零四。那么这个reflect t04这一块呢,我们来研究一下,我们研究一下谁呢?研究一下点name发生了什么。好比如说在这里呢,有一个类,这个类呢,我们就叫做my class。然后里边我写一个静态代码块,各位。
01:00
静态代码块啊,静态代码块在类加载时执行,并且只执行一次,之前我们讲过吧,静态代码块里面说一句话啊,我们叫my class类的静态代码块执行了。好了,那么接下来我们在这里来执行一个class.for name class.for name这个name的name名我们拿过来就是这个名字吧,假如说copy一下,然后拿过来放到这儿,那么这个时候呢,我们加一个TRY开始去处理一下,来大家看啊,我这里啊,嗯嗯,不是研究这个返回值啊,这里不是研究这个返回什么,明白吧,所以呢,我这边我就不讲这个了啊,我直接讲一讲class for name这个方法,它发生了什么,我们来看啊,执行一下。你看是吧,My class类的静态代码块执行了,这说明这个class.form name这个方法会导致类加载,会把这个类呢装载到Java虚拟机里边,而我们的类在加载的时候,它的静态静态代码块执行。
02:11
啊,那静态代码块执行,那么换句话说,我想告诉大家,或者想传达大家一个信息是什么呢?如果你只想让一个类的静态代码块执行的话,那么你就这么写代码就行了。听清楚了吗?就是如果你只想让这个类的一个静态代码块执行的话,你这样写代码它就可以执行了。有同学老师因为这个这个这个跟这个在一块儿,是不是这个原因啊,来我们把它拿出来看一下啊,拿出来在这个位置呢,我们去新建一个class,这个class我们叫my class啊,这个my class呢,我们这儿呢,就直接拿过来了啊直接过来了。来这写个public,这还是那个类吧,来我们再执行一下这个执行这个main方法,Main方法这个地方啊,class.for name这个方法的执行,这个方法的执行会导致类加载啊,会导致类加载,那么大家都知道类加载静态代码块必然执行,来我们执行一下。
03:14
你看这个my class,它这个代码输出了呀,对吧,所以大家记住这个结论啊,这个结论其实也是比较重要的啊,如果大家只希望某一个类的。静态代码块执行,不希望其他程序执行的话,你可以采用class.form name的方式。这样的话,这个类的静态代码块就执行,别的同学不会执行的。啊就是哎,记住啊,记住重点,如果你只是希望一个类的静态代码块执行,其他代码一律不执行。可以使用什么?class.for。
04:00
完整类表,这个方法的执行会导致类加载,这个方法的执行会导致类加载。类加载时。静态代码块执行啊,静态代码块执行。有一个印象各位啊,因为这个代码到后期JDBC的时候我们还要用。啊,我在这里给大家提个醒提示啊,后面JDBC技术的时候。我们还需还需要啊,我们还需要这行代码,所以在这里我先给大家提个醒啊,class.for name这个方法括号里边如果只是跟了一个类名,它会导致这个类加载,这个类呢,加载进来的时候,它会执行静态代码块,也就是只要是拉点方这种方式的话,那就可以导致这个类的静态代码块执行,如果你只是想让这个类的静态代码块执行,不想让别的代码执行的话,你就给他写一个class name,这样的话就可以了。
我来说两句