java笔记

java连接数据库问题,其他正确,却还是链接不成功,一般时区问题,尝试解决:
jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

 

java反射相关问题

例如一个类,Person,这个类

那么我们去Person per = new Person(); //new一个类,即创建一个类,

那么这个Person类会被类加载器加载后,放在堆中里面,即为Class的一个对象,Class cl (即为Class 对象cl)

而用法,在传统上是,对象.方法();

反射,就得反着来,方法.get(对象);

列如:

Person per = new Person() ; // 正着操作-由类到对象
System.out.println(per.getClass().getName()); // 反着来-由对象到类





反射就是一面镜子,这个镜子就是‘Class对象’,去获取我们写好的类源码,类源码被编译成了字节码文件,然后Class对象(是一面镜子),通过字节码反射(也可以理解为复制)到了Class类加载里,那么我们就可以直接在Class这个类来创建对象等等

这么理解吧,new也是从Class步骤过来,只是New写死,而反射,我们可以从Class这里,需要什么,就从已经在堆里加载好的类,这里面拿(而这个拿就是相当动态New了对象)

 反射,就是反着来,突出反这个字。如图中Class加载类这个大方框,跟Runtime运行阶段这个大方框。

new是,我们new,然后从Class里面拿。反射呢,是从Class里面拿,然后去映射出一个对象。

 
posted @ 2021-05-23 16:39  海屿城  阅读(31)  评论(0)    收藏  举报