19.10.26
//1.反射
Java的反射是指一个程序运行期间可以拿到一个对象的所有信息
这种通过Class实例获取class信息的方法称为反射(Reflection)。
获得实例的三种方法:
<1>直接通过一个class的静态变量class获得
Class cls = String.class;
<2>如果有一个实例变量,可以通过实例变量的getClass()获得
String s = "Hello";
Class cls = s.getClass();
<3>如果知道一个class的完整类名,可以通过静态方法Class.forName()获得
Class cls = Class.forName("java.lang.String");
因为Class实例在JVM中是唯一的,所以上述方法获取的Class实例时同一个实例;
可以使用==来进行比较
Class实例比较和instanceof的差别
用instanceof不但匹配当前的类型,还可以匹配类型的子类。
而用==判断class实例可以精确地判断数据类型,但不能作子类型比较。
通过Class.newInstance()可以创建类实例,它的局限是:
只能调用public的无参数构造方法。带参数的构造方法,
或者非public的构造方法都无法通过Class.newInstance()被调用
动态加载
JVM在执行Java程序的时候,并不是一次性把所有用到的class全部加载到内存中
而是第一次用到是才加载
JVM总是动态加载class,可以在运行期根据条件来控制加载class。
作者:睿晞
身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
曾有一个业界大牛说过这样一段话,送给大家:
“华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.